1 JDBC 背景知识
1.1 什么是JDBC
?JDBC 英文全称为 Java Database Connectivity ,也就是 Java 数据库的连接,也可以说其是用于执行 SQL 语句的 Java API, 也是Java 中数据库的连接规范. ? 组成: 由 java.sql.* , javax.sql.* 包中的一些接口和类组成, 为 Java 开发人员操作数据库提供了一个标准的 API,方便对关系数据库的访问.
1.2 为什么要引入 JDBC
#emsp; 首先简单说一下什么是 API: 英文全称为 Application Programming Interface, 指的是提供了一组函数或类或方法,能够让程序猿们直接去使用, 有时候也可称之为接口. ? 我们都知道就数据库而言, MySQL 的 API 和 Server 的 API 都有着显著的区别,于是开发人员在写代码的时候就会频繁的切换 API, 对程序猿而言这是一件非常苦恼的事情,为了解决这个问题,就引入了 JDBC 的概念, 可以理解成是 Java 自带的一组数据库操作的 API, 其涵盖了各种数据库的操作方式,把不同数据库的 API 都统一到一起了, 这就像是一个充电器的转接头, 有的充电宝自带的数据线是 type-c 的,那么苹果用户想要使用就得买一个转接头,例如我得充电宝一样!!! 其实现原理如下图所示: 不同的数据库需要提供不同的驱动程序, 在 Java 中的驱动程序是一个 " jar " 包.
2 jar 包导入操作步骤
?使用 jar 包之前,需要将 jar 包导入到 IDEA 中,这时候代码才能够访问到 jar中的类.
- 步骤一: 在 maven 仓库中下载 jar 包,这里需要注意下载的 jar 包要与自己电脑上的 mysql 版本一致;
- 步骤二: 在 IDEA 工程中创建文件夹,将 jar 包拷贝进去;
- 步骤三: 配置项目属性,让项目能够找到 jar 包;
- 步骤四: 检查是否导入成功
当出现红框中的信息时代表已经导入成功!!!
3 JDBC 的使用
3.1 代码示例
? 关于 JDBC 的使用用一段代码进行解释,代码如下:
public class TestJDBC1 {
public static void main(String[] args) throws SQLException {
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setURL("jdbc:mysql://**********");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("123456");
Connection connection = dataSource.getConnection();
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int classId = resultSet.getInt("classId");
System.out.println("id: " + id +" name: " + name + " classId: " + classId);
}
resultSet.close();
statement.close();
connection.close();
}
}
注意事项:
- 创建数据库连接 Connection; 获取 Connection 对象通常有两种方式,但是目前建议使用方式二;
方式一: 通过 DriverManager (驱动管理类) 的静态方法获取; 方式二:通过 DataSource (数据源) 对象获取. DriverManager 的获取方式是无法重复利用的,每次使用完以后释放资源, connection.close()都是关闭物理连接; DataSource 提供连接池的支持,连接池在初始化时将创建一定数量的数据库连接,这些连接是可以重复使用的,每次使用完数据库释放资源,通过调用 connection.close() 都是将 Connection 连接对象回收.
- insert / delete / update 都使用executeUpdate方法来执行., select 使用 executeQuery 来执行.
3.2 步骤总结
- 创建DataSource 对象,并配置三方面信息;
- 和数据库建立连接, 每个请求创建一个新的 connection;
- 用到PrepareStatement拼装 SQL 语句;
- 执行 SQL 语句;
- 遍历结果集;
- 关闭释放相关资源, 后创建的先被释放.
3.3 题外篇
? 关于创建 DataSource 时的setURL, 每个字段含义如下图所示:
|