本文从以下几个方面介绍JDBC
- 什么是JDBC?
- 如何使用JDBC连接数据库?
- JDBC的实现细节
一、什么是JDBC?
JDBC的全称为Java DataBase Connectivity,中文亦即java数据库连接。是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC简单来说就是用于操作数据库的Java API。
二、如何使用JDBC
假设环境已经搭建好,数据库驱动已经导入到项目中。
- 方式一
public class DriverDemo {
@Test
public void testDriver() throws SQLException {
//1. 创建一个 Driver 实现类的对象
Driver driver = new com.mysql.jdbc.Driver();
//2. 准备连接数据库的基本信息: url, user, password
String url = "jdbc:mysql://192.168.136.128:3306/test";
Properties info = new Properties();
info.put("user", "root");
info.put("password", "root");
//3. 调用 Driver 接口的 connect(url, info) 获取数据库连接
Connection connection = driver.connect(url, info);
System.out.println(connection);
}
}
- 方式二
@Test
public void testDriverManager() throws Exception{
//1. 驱动的全类名
String driverClass = "com.mysql.jdbc.Driver";
//2. 准备连接数据库的基本信息: url, user, password
String url = "jdbc:mysql://192.168.136.128:3306/test";
String user = "root";
String password = "root";
//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块)
Class.forName(driverClass);
//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接
Connection connection =
DriverManager.getConnection(url, user, password);
System.out.println(connection);
}
开发中一般使用的是方式二通过DriverManager去跟数据库连接,DriverManager是java.sql包下的一个类,内部维护着一个CopyOnWriteArrayList用于存放已经注册的驱动实例。之所以能getConnection(),是因为底层会循环遍历所有驱动,找到当前注册的驱动后调用driver.connect()获得Connection。设计的初衷就是为了支持注册多个(多种)驱动,通过DriverManager可以管理多个驱动程序。所以它叫“驱动管理器”(DriverManager)。
- 对方式二做进一步优化
把url、user、password、driver移到jdbc.properties文件中,做成可配置。
@Test
public void getConnection() throws Exception{
//1. 准备连接数据库的 4 个字符串.
//1). 创建 Properties 对象
Properties properties = new Properties();
//2). 获取 jdbc.properties 对应的输入流
InputStream in =
this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
//3). 加载 2) 对应的输入流
properties.load(in);
//4). 具体决定 user, password 等4 个字符串.
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String jdbcUrl = properties.getProperty("jdbcUrl");
String driver = properties.getProperty("driver");
//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块)
Class.forName(driver);
//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接
Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println(connection);
}
网友评论