一篇弄懂JDBC(不骗你)

一、获取数据库连接

首先知道连接数据库的四个要素,这是连接数据库必须的


这四个要素可以这样形象的理解,数据库驱动相当于一辆车,URL地址相当于目的地,账号密码相当于车钥匙,这样才能去往数据库

  1. 相应的数据库驱动
  2. URL地址
  3. 账号
  4. 密码
//一、加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");

//二、数据库的URL地址
String url = "jdbc:mysql://127.0.0.1:3306/chat_db?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";

//三、数据库的账号
String user = "root";

//四、数据库的密码
String password = "111";

//用驱动管理器获取连接返回连接对象
Connection connection = DriverManager.getConnection(url,user,passworg);

至此数据库就连接成功了,我们只要记住连接数据库的四要素就好

二、增删改操作

因为增删改没有返回值,所以可以归为一类,下面给出操作步骤

  1. 获取数据库连接
  2. 预编译SQL语句,并返回prepareStatement对象
  3. 填充预编译SQL语句里面的占位符
  4. 执行
//步骤一:获取数据库连接
Connection connection = DriverManager.getConnection(url,user,passworg);

//要执行的SQL语句,关键部分用问号表示,比如说给Student表插入一条数据
String sql = "insert into student(id,name,sex) vaules(?,?,?)";
//步骤二:预编译SQL语句,并返回对象
PreparedStatement ps = connection.prepareStatement(sql);

//步骤三:填充占位符
ps.setObject(1,2);
ps.setObject(2,"张三");
ps,setObject(3."男");

//步骤四:执行
ps.execute();

以上就是一套最简单的插入语句,我们可以将以上代码提取出来,编写一个通用的增删改操作

我们需要将什么参数传入该方法呢?

SQL语句、SQL语句里面的占位符

但是占位符的个数是不确定的,怎么确定参数的个数呢?这里就用到了可变参数的形参

public void update(String sql, Object...args){
    
    
    
    //获取数据库连接
    Connection connection = DriverManager.getConnection(url,user,passworg);
    
    //传入形参SQL,预编译SQL语句,返回对象
    PreparedStatement ps = connection.prepareStatement(sql);
    
    //填充占位符,一次传入形参
    for (int i = 0; i < args.length; i++) {
    
    
		ps.setObject(i + 1, args[i]);
	}
    
    //执行
    ps.execute();
    
}

三、查询操作

查询单列出来的原因是,会返回结果,我们要想办法拿到数据

ResultSet 返回的实际上就是一张数据表。有一个指针指向数据表的第一条记录的前面。

//获取数据库连接
Connection connection = DriverManager.getConnection(url,user,passworg);

//查询学生表id等于几的一条数据
String sql = "select * from student where id = ?";

//预编译SQL语句,并返回prepareStatement对象
PreparedStatement ps = connection.prepareStatement(sql);

//执行查询,返回结果(其实结果已经在这个结果集里了,现在只考虑怎么用这些数据就行了)
ResultSet set = ps.executeQuery();

//用while循环取数据,如果next()有下一条数据,就进入循环,一列一列的获取值
while (set.next()){
    
    
	int id = set.getInt(stu_id);
    String name = set.getString(stu_name);
    String sex = set.getString(stu_sex);
}

猜你喜欢

转载自blog.csdn.net/weixin_45321793/article/details/113000758