JDBC从入门到实战:DriverManager、Connection、PreparedStatement与ResultSet详解
一.JDBS1.介绍JDBC就是使用Java语言操作关系型数据库的一套API本质sun公司官方定义的一套操作所有关系型数据库的规范即接口。各个数据库厂商去实现这套接口提供数据库驱动jar包。可以使用这套JDBS编程。真正执行的代码是驱动jar包中的实现类。2.入门程序1完成数据修改package org.junit.jupiter; import org.junit.jupiter.api.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Exception; import java.sql.Statement; public class JdbcTest { //JDBC入门程序 Test public void testUpdate() throws Exception { //1.导入数据库驱动 Class.forName( com.mysql.cj.jdbc.Driver );//使用forName方法加载数据库驱动 //2.获取数据库连接 String url jdbc:mysql://localhost:3306/web01; String username root; String password 1234; DriverManager.getConnection(url,username,password); //3.获取SQL语句执行对象 Statement statement connection.createStatement(); //4.执行SQL语句 int i statement.executeUpdate(update account set money 1000 where id 1); System.out.println(sql执行完毕次数 i); //5.释放资源 Statment.close(); connection.close(); } }2完成查询数据需求基于JDBC执行如下select语句将查询语句封装到User对象中SQLselect * from user where username daqiao and password 123456AI提示词你是一名java开发工程师帮我基于JDBC程序来操作数据库执行如下SQL语句select id,username,password,name,age from user where username daqiao and password 123456;并将查询的每一行记录都封装到实体类User中然后将User对象的数据输出到控制台中。User 实体类属性如下DataNoArgsConstructorAllArgsConstructorpublic class User {private Integer id; //IDprivate String username; //用户名private String password; //密码private String name; //姓名private Integer age; //年龄}import java.sql.*; public class JdbcUserQuery { public static void main(String[] args) { // 数据库连接信息 String url jdbc:mysql://localhost:3306/你的数据库名?useSSLfalseserverTimezoneUTCcharacterEncodingutf8; String username 数据库用户名; String password 数据库密码; // SQL查询语句 String sql select id,username,password,name,age from user where username daqiao and password 123456; Connection conn null; PreparedStatement pstmt null; ResultSet rs null; try { // 1. 加载数据库驱动MySQL 8.0使用com.mysql.cj.jdbc.Driver Class.forName(com.mysql.cj.jdbc.Driver); // 2. 获取数据库连接 conn DriverManager.getConnection(url, username, password); // 3. 创建PreparedStatement对象 pstmt conn.prepareStatement(sql); // 4. 执行查询获取结果集 rs pstmt.executeQuery(); // 5. 处理结果集 while (rs.next()) { // 创建User对象 User user new User(); // 设置属性值 user.setId(rs.getInt(id)); user.setUsername(rs.getString(username)); user.setPassword(rs.getString(password)); user.setName(rs.getString(name)); user.setAge(rs.getInt(age)); // 输出用户信息 System.out.println(查询到用户信息); System.out.println(ID: user.getId()); System.out.println(用户名: user.getUsername()); System.out.println(密码: user.getPassword()); System.out.println(姓名: user.getName()); System.out.println(年龄: user.getAge()); } } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println(数据库驱动加载失败); } catch (SQLException e) { e.printStackTrace(); System.out.println(数据库操作异常); } finally { // 6. 关闭资源按ResultSet -PreparedStatement-Connection的顺序关闭 try { if (rs ! null) rs.close(); if (pstmt ! null) pstmt.close(); if (conn ! null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }模板化操作AI可替代不需要重复写3.预编译SQL