一、JDBC介绍
1.JDBC是什么
JDBC是java官方定义的一套操作所有关系型数据库(mysql、oracle等)的接口规范,各个数据库厂商基于这套接口规范提供自己的驱动jar包(接口实现类),通过接口调用实现类达到操作数据库的目的。
2.JDBC的优点
(1)java不用针对每个数据库进行单独的开发
(2)可以随时替换底层的数据库
二、JDBC常见概念
2.1 DriverManager(数据库驱动)
2.1.1 注册驱动
注册代码示例:DriverManager.registerDeriver(new Driver());
实际注册代码:Class.forName(“com.mysql.jdbc.Driver”);
实际注册原理:
(1)com.mysql.jdbc.Driver继承了com.mysql.cj.jdbc.Driver
(2)com.mysql.cj.jdbc.Driver中的静态代码块调用了java.sql.DriverManager.registerDriver(new Driver());
(3)所以当Class.forName()初始化com.mysql.jdbc.Driver时,会执行com.mysql.cj.jdbc.Driver的静态代码块注册驱动。
注意:jdk1.6+Mysql5.1.6及之后的版本不再需要通过Class.forName()注册驱动,通过自动读取驱动包下的META-INF/services/java.sql.Driver文件注册驱动。
2.1.2 获取数据库连接
Connection connection = DriverManager.getConnection(String url,String userName,String password);
2.2 Connection(数据库连接)
2.2.1 获取SQL执行对象
Statement statement = connection.createStatement();
2.2.2 获取预编译SQL执行对象
PreparedStatement preparedStatement = connection.prepareStatement(String sql);
2.2.3 获取存储过程执行对象
CallableStatement callable = connection.prepareCall(String sql);
2.2.4 管理事务
(1)connection.setAutoCommit(boolean autoCommit); true为自动提交事务,false为手动提交事务并开启事务。
(2)connection.commit(); 提交事务
(3)connection.rollback(); 回滚事务
2.3 Statement(SQL执行对象)
2.3.1 执行DDL、DML语句
int count = statement.executeUpdate(String sql); 执行DML语句返回影响行数,执行DDL语句返回0