使用JDBC连接数据库演示

news/2024/5/19 1:38:22 标签: jdbc, mysql

使用JDBC方式连接数据库

前期准备

使用工具 :IDEA mysql 
所需的jar包:mysql-connecter

步骤

1.加载mysql驱动
2.使用驱动管理器获取Connection连接
3.使用连接创建sql语句管理器PreparedStatement
4.执行相关语句
	如果是查询语句,返回一个结果集
	如果是增删改语句,会返回改变的行数
5.释放相关资源

相关代码如下

package _0602.dao;

import java.sql.*;

/**
 * @author sunyong
 * @date 2020/06/02
 * @description
 *该类本质是大家的公用dao,相当于一个基类,其他具体的dao类可继承该类
 */
public class BaseDao {
    public static Connection conn;//定义连接
    private static PreparedStatement pstm;//定义语句管理器
    public static ResultSet rs;//定义结果集
    //获取连接
    public static void getConnection(String driver,String url,String usr,String pwd) throws Exception{
        //1)加载驱动
        Class.forName(driver);
        //2)使用驱动管理器生成连接
        conn= DriverManager.getConnection(url,usr,pwd);
    }
    //查询
    public static ResultSet query(String sql,Object...params) throws SQLException {
        //3)获取语句管理器
        pstm=conn.prepareStatement(sql);
        //设置语句中的相关参数
        for (int i = 0; i < params.length; i++) {
            pstm.setObject(i+1,params[i]);
        }
        //4.1)执行查询语句,返回结果集
        rs=pstm.executeQuery();
        return rs;
    }
    //增删改语句
    public static int update(String sql,Object...params) throws SQLException {
        //3)获取语句管理器
        pstm=conn.prepareStatement(sql);
        //设置语句中的相关参数
        for (int i = 0; i < params.length; i++) {
            pstm.setObject(i+1,params[i]);
        }
        //4.2)执行增删改句,返回改变的行数
        return pstm.executeUpdate();
    }
    //5)释放相关资源
    public static void close() throws SQLException {
        //注意:后开的先关
        if(rs!=null){
            rs.close();
        }
        if (pstm!=null){
            pstm.close();
        }
        if(conn!=null){
            conn.close();
        }
    }
    //为方便就在本类中测试
    public static void main(String[] args) {
        try {
            //获取连接
            getConnection("com.mysql.jdbc.Driver","jdbc:mysql://192.168.56.101:3306/kgcnews","kb07","ok");
            //执行的sql查询语句
            String sql1 ="select * from news_user";
            //执行的sql删除语句
            String sql2="delete from news_user where id=9";
            //获取查询的结果集
            rs =query(sql1);
            //遍历结果集
            while(rs.next()){
                int id=rs.getInt("id");
                String userName=rs.getString("userName");
                //打印id和名字
                System.out.println(id+"\t"+userName);
            }
            //获取删除改变的行数
            int delRow = update(sql2);
            //打印是否删除
            System.out.println(delRow>0?"删除成功":"删除失败");
            //关闭资源
            close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


未执行语句前的mysql数据库中的表:
未执行前

执行语句后控制台:
在这里插入图片描述
执行语句后mysql数据库中的表:
在这里插入图片描述


http://www.niftyadmin.cn/n/516176.html

相关文章

linux mysql 远程访问权限问题

1、为了让访问mysql的客户端的用户有访问权限&#xff0c;我们可以通过如下方式为用户进行授权&#xff1a;mysql> grant all on *.* to user_name% identified by user_password; 上面的命令授予的用户权限可以访问mysql中的任意数据库(database)和表(table)。2、完成上面的…

Linux远程连接和软件安装

Linux远程连接和软件安装 文章目录Linux远程连接和软件安装1.Linux远程连接简介2.远程连接准备3.Linux进程和程序4.moba实现远程连接步骤:5.软件安装1)yum命令:在线安装2)rpm命令:直接安装3)tar:解压安装4)unzip:解压安装1.Linux远程连接简介 SSH协议(Secure Shell):专为远程登…

ASP.NET - 记录错误日志

不需要像log4net/Nlog/Common Logging配置&#xff0c;简单好用。 不用增加声明logger对象&#xff0c;可记录当前执行状况。可以定义 维护功能模板的开发人员&#xff0c;以便用功能模块对于开发人员。出处&#xff1a;https://git.oschina.net/lztkdr/Log_Solution最后建议&a…

MySQL经典习题

文章目录一.建表1)请写出这5张表&#xff0c;你认为可行的建表语句(注:表中插入数据只是演示)二.查询1)查询“生物”课程比“物理”课程成绩高的所有学生的学号2)查询平均成绩大于60分的同学的学号和平均成绩3)查询所有同学的学号、姓名、选课数、总成绩4)查询姓“李”的老师的…

TF-IDF算法-自动提取关键词汇

引子&#xff1a;Automatic Keyphrase extraction 很长文章里面&#xff0c;如何自动提取关键词汇呢&#xff1f; 比如在《中国的蜜蜂养殖》的长文里面&#xff0c;我们准备提取它的关键词。首先一个思路&#xff0c; 那些出现频率很高词汇应该更加重要一些&#xff0c;例如“中…

二叉搜索树的后序遍历路径(《剑指offer》面试题24)

题目&#xff1a;输入一个整数数组&#xff0c;判断该数组是不是二叉搜索树的后序遍历序列的结果&#xff0c;如果是&#xff0c;则返回true&#xff0c;如果不是则返回false。假设输入的数组的任意两个数字都互不相同。 分析&#xff1a;在后序遍历得到的序列中&#xff0c;最…

linux常用命令补充

文章目录一.变量声明与查看1)echo命令2)printenv二.计算文件的字数:wc命令三.搜索命令:grep四.file命令五.which命令六.ln命令七.find命令八.date命令九.ping命令十.scp命令十一.df -h命令一.变量声明与查看 1.export在/etc/profile中配置的是全局变量(需要重启或者source使之…

java日志组件介绍(common-logging,log4j,slf4j,logback )

转自&#xff1a;http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现&#xff0c;像log4j&#xff0c;或者jdk自带的logging&#xff0c; common-logging会通…