1、原理
JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
JDBC中主要的设计模式
-
桥接模式 (主要)
- 工厂模式
- 单例模式
- 装饰者模式
2、使用步骤
前提:导包
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
1)配置信息
-
驱动
如果选用后面第二种方式加载驱动,直接new,此处驱动不用显式指明,可以省略
// mysql-connector-java 6及以上用:com.mysql.cj.jdbc.Driver
String driver = "com.mysql.cj.jdbc.Driver";
// mysql-connector-java 6 以下用 com.mysql.jdbc.Driver
String driver = "com.mysql.jdbc.Driver";
// 新版驱动需要加安全检查:useSSL=true
// 连接符 & 及转义符 & ,因配置环境不同,有时可以直接用 &,有时需要转义 &
String url = "jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8";
String url = "jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8";
String url = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT";
String url = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8";
String username = "root";
String ps = "123456";
2)加载驱动
Class.forName(driver);
// com.mysql.cj.jdbc.Driver()
DriverManager.registerDriver(new Driver());
3)连接数据库
连接成功后的 Connection 对象就相当于数据库
Connection connection = DriverManager.getConnection(url, username, ps);
4)获取SQL对象
SQL对象(Statement、PreparedStatement)
PreparedStatement:预编译SQL对象,SQL语句中指明占位符
Statement statement = connection.createStatement();
5)编写SQL
String sql = "select * from people";
6)执行SQL
ResultSet resultSet = statement.executeQuery(sql);
7)输出结果
// ---输出---
while (resultSet.next()) {
System.out.print(" id:" + resultSet.getObject("id"));
System.out.print(" name:" + resultSet.getObject("name"));
System.out.println();
}
8)关闭/释放
关闭连接/释放资源
先关里层、后关外层
resultSet.close();
statement.close();
connection.close();
总结
只有第5步编写SQL语句需要变化,其余步骤基本上固定,不需要变化;可以把这个执行过程封装起来使用
3、事务
1)开启
// 默认自动提交
// 设为false,相当于关闭自动提交,需要手动提交,等价于开启事务
connection.setAutoCommit(false);
2)提交
connection.commit();
3)回滚
connection.rollback();