Java-JDBC 配置和使用
下载 JDBC Jar 包
Mysql JDBC 地址:https://dev.mysql.com/downloads/connector/j/
- 选择 Platform Independent 下载并解压得到 .jar 包,放入自己 Jar 文件夹中
将 Jar 库导入到 Idea
注册驱动并获取连接
从 JBC3 开始,目前已经普遍使用的版本。可以不用注册驱动而直接使用。
Class.forName
这句话可以省略。
1 | // 注册驱动 从JDBC3开始这步可以省略 |
获得连接
- Connection 接口,代表一个连接对像具体的实现类由数据库的厂商实现。
- 使用 DriverManage r 类的静态方法 getConnection () 可以获取数据库的连接。
获取连接的静态方法 说明 Connection getConnection(String url, String user, String password) 通过连接字符串和用户名,密码来获取数据库连接对象
getConnection 方法 3 个连接参数说明
连接参数 说明 user 登录用户名 password 登录密码 url mySql URL 的格式
jdbc: mysql: //localhost: 3306/db4JDBC URl 详细说明
1
jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8
- JDBC 规定 ur 的格式由三部分组成,每个部分中间使用冒号分隔。
- 第一部分是协议 jdbc < 这是固定的;
- 第二部分是子协议,就是数据库名称,连接 mysq 数据库,第二部分当然是 mysql 了
- 第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysq 的第三部分分别 由数据库服务器的 IP 地址 (localhost)、端口号 (3306), 以及要使用的数据库名称组成。
- 获取连接 Connection 对象
1 | // 获取连接 connection 连接对象 |
获取语句执行对象 Statement
- Statement: 代表一条语句对象,用于发送 SQL 语句给服务器,用于执行静态 SQL 句并返回它所生成结果的对象。
Statement 类常用方法
方法声明 | 说明 |
---|---|
executeUpdate(String sql) | 执行 insert update delete 语句返回 nt 类型代表受影响的行数 |
ResultSet executeQuery(String sql); | 执行 select 语句,返回 Resultset 结果集对象 |
代码示例1
2
3
4
5
6
7
8
9
10
11// 获取 statement 对象
statement = connection.createStatement();
// 通过 Statement 对象的 executeUpdate 方法创建一张表
String sql = "create table test(id int,name varchar(10),age int);";
// int count = statement.executeUpdate(sql); // 受影响行数 0
// System.out.println(count);
sql = "select * from test";
// 执行查询操作 ResultSet是结果集对象
ResultSet resultSet = statement.executeQuery(sql);
ResultSet 结果集对象
作用:封装数据库查询的结果对结果集进行遍历,取出每一条记录。
常用方法 | 说明 |
---|---|
boolean next() | 1) 游标向下一行 2) 返回 boolean 类型,如果还有下一条记录,返回 true, 否则返回 false |
xxx getXxx( String or int) | 1) 通过列名,参数是 String 类型。返回不同的类型 2) 通过列号,参数是整数,从 1 开始。返回不同的类型 |
- 处理结果集
1
2
3
4
5
6
7String sql = "select * from test";
// 执行查询操作 ResultSet是结果集对象
resultSet = statement.executeQuery(sql);
// resultSet.next() 获取下一条结果集
while (resultSet.next()) {
System.out.println(resultSet.getString("name"));
}
预处理对象
PreparedStatement 接口介绍
- PreparedStatement 是 Statement 接口的子接口,继承于父接口中所有的方法。它是一个预编译的 SQL 语句对象
- 预编译:是指 SαL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次髙效地执行该语句。
Preparedstatement 特点
- 因为有预先编译的功能,提高 SQL 的执行效率。
- 可以有效的防止 SQL 注入的问题,安全性更高
获取 Preparedstatemen 对象
- 通过 Connection 创建 PreparedStatemen 对象
Connection 中的方法 说明 PreparedStatement prepare Statement(String sql) 指定预编译的 SQL 语句,
SQL 语句中使用占位符?创建一个语句对象
事物
- 我们使用 Connection 中的方法实现事务管理
方法 说明 void setAutoCommit(boolean autoCommit) 参数是 true 或 fase 如果设置为 fase, 表示关闭自动提交,相当于开启事务 void commit() 提交事务 void rollback() 回滚事务