JDBC
概念:Java DataBase Connectivity Java数据库连接 Java语言操作数据库
JDBC本质:Java定义了一套操作所有关系型数据库的规则,即接口
各个数据库厂商去实现这套接口(JDBC),提供数据库驱动jar包,即将自己写好的实现类打包成jar包
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
类DriverManager:创建驱动管理对象
功能:
1.注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
// 将mysql-connector-java.jar包下面的com.mysql.jdbc.Driver这一个实现类加载到内存中
// com.mysql.jdbc.Driver此实现类implements实现了java.sql.Driver接口
// 随着com.mysql.jdbc.Driver根据反射机制进入内存,类中的【静态代码块】会自动执行,类中的【静态方法】还是需要类.方法名来手动执行
// 源码
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
public Driver() throws SQLException {
}
// 静态代码块
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException(“Can’t register driver!”);
}
}
}
2.获取数据库连接
DriverManager
方法:static Connection getConnection()
Connection 数据库连接对象
1.功能
获取执行SQL的对象 Statement stmt = conn.createStatement(); // 执行 静态sql(参数不可变)
PreparedStatement prepareStatement(String sql) // 执行 动态sql(参数可变)
管理事务
开启事务 setAutoCommit(boolean autoCommit) 调用该方法设置参数为false,即开启事务
提交事务 commit()
回滚事务 rollback()
Statement 执行sql对象
1. 执行sql
int executeUpdate(String sql) 【执行DML语句 增删改 insert delete update】【执行DDL create alter drop语句】
返回值:受到影响的行数(记录数)
ResultSet executeQuery(String sql) 【执行DQL 查询 select】
ResultSet 结果集对象,封装查询结果
boolean next(): 游标初值指向字段行 向下移动判断是否还有数据 如果还有数据,返回true,否则返回false
gerXXX():获取数据
XXX:代表数据类型,对应数据库中表的字段定义
参数:两个重载形式 int:表示字段的编号,从1开始
String:表示字段的名称
PreparedStatement 执行sql的对象