
Cying, What's Mean JDBC
JDBC - (Java Database Connectivity),是用于将 MySQL 连接到 Java 工程的开源 API
JDBC 主要结构
DriveManager
- 作为链接到数据库的驱动存在 [好比移动/联通/电信]
Connection
- 是 Java 与 MySQL 的会话连接 [好比一次拨号成功]
PrepareStatement
- 是 Java 向 MySQL 发出的请求 [Java 告诉 MySQL 要干嘛]
ResultSet
- MySQL 向 Java 返回的结果
1.配置好驱动 DriverManager
- 点击下载
JDBC
驱动器
- 解压后,在
Java
项目中引入 mysql-connector-java-版本号.jar

2.封装一个 DriveManager
因为每次注册驱动的方法都是一样的,无非就是用户 MySQL 的用户名、密码、要连接的数据库名,其中只有一个 要连接的数据库名 会不一样,所以我们一般把注册驱动封装成一个独立的 X.Java 文件
如下所示,在 X.Java (名字随意,我这里是ConnectToMySQL.java) 中有一个 getConnection 的方法,返回的类型为 Connection
- 返回的是 DriverManager.getConnection(); ,其中有三个参数,一个分别是 URL,UserName,PassWord
- UserName 和 PassWord 记得改成自己的数据库账号、密码
- URL 是数据库的连接地址,格式是固定的,只有中间的数据库名有变动,所以 URL 采用的字符串拼接方式,在拼接的时候就把传过来的数据库名加进去。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;
public class ConnectToMySQL {
private static String username = "****"; private static String password = "****";
public static Connection getConnection(String dataBaseName) throws SQLException {
String url = "jdbc:mysql://localhost:3306/" + dataBaseName + "?useSSL=false&serverTimezone=UTC&charset=utf8"; return DriverManager.getConnection(url,username,password);
}
}
|
3.测试连接
- 声明 Connection
- 声明 PreparedStatement
- 根据封装的 ConnectToMySQL 获取会话连接 connection
- 对会话传输指令 preparedStatement
- 执行 preparedStatement 的指令
- 关闭 Connection 和 PreparedStatement,先打开的后关闭,后打开的先关闭
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class T_JDBC {
static Connection connection = null; static PreparedStatement pStatement = null;
public static void main(String[] args) throws SQLException {
connection = ConnectToMySQL.getConnection("T_JDBC"); System.out.printf("第一次查询:"); doQuery("SELECT * FROM USER");
pStatement = connection.prepareStatement("INSERT INTO USER VALUES (?,?)");
pStatement.setString(1, "Kevin"); pStatement.setString(2, "2019****"); pStatement.executeUpdate();
System.out.printf("第二次查询:"); doQuery("SELECT * FROM USER");
pStatement.close(); connection.close(); }
public static void doQuery(String query) throws SQLException {
pStatement = connection.prepareStatement(query); ResultSet rSet = pStatement.executeQuery();
while(rSet.next()){ String records = rSet.getString(1) + " \t" + rSet.getString(2); System.out.println(records); } } }
|
运行结果如下所示

数据库情况如下所示

Finish