一.JDBS
1.介绍
JDBC:就是使用Java语言操作关系型数据库的一套API

本质:
sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
各个数据库厂商去实现这套接口,提供数据库驱动jar包。
可以使用这套(JDBS)编程。真正执行的代码是驱动jar包中的实现类。
2.入门程序
1)完成数据修改

java
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对象中
SQL:select * from user where username = "daqiao" and password = "123456"
AI提示词:
你是一名java开发工程师,帮我基于JDBC程序来操作数据库,执行如下SQL语句:select id,username,password,name,age from user where username = 'daqiao' and password = '123456';
并将查询的每一行记录,都封装到实体类User中,然后将User对象的数据输出到控制台中。
User 实体类属性如下:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id; //ID
private String username; //用户名
private String password; //密码
private String name; //姓名
private Integer age; //年龄
}
java
import java.sql.*;
public class JdbcUserQuery {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
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

