📌 目录
1. 简介
Java 中连接 MySQL 数据库通常使用 JDBC(Java Database Connectivity,Java 数据库连接)。JDBC 是一种 API,它允许 Java 程序与关系型数据库进行交互。在 Java 中连接 MySQL 数据库时,通常需要以下几个步骤:
- 添加 MySQL JDBC 驱动程序
- 设置数据库连接 URL
- 使用
Connection
对象进行数据库连接 - 执行 SQL 查询或更新操作
- 处理结果集
- 关闭数据库连接
2. 连接 MySQL 数据库的步骤
1. 安装 MySQL 数据库
确保你的计算机上已经安装了 MySQL 数据库,并且已经创建了一个数据库和表。
2. 添加 MySQL JDBC 驱动
要使用 JDBC 连接 MySQL 数据库,你需要添加 MySQL JDBC 驱动程序。可以通过 Maven 来引入 mysql-connector-java
依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
如果不使用 Maven,也可以直接下载并将 mysql-connector-java
的 JAR 文件添加到项目的类路径中。
3. 设置数据库连接信息
连接 MySQL 数据库时,通常需要以下信息:
- 数据库 URL:
jdbc:mysql://<host>:<port>/<database_name>
- 数据库用户名:数据库的用户名
- 数据库密码:数据库的密码
3. Java 连接 MySQL 示例代码
以下是一个使用 JDBC 连接 MySQL 数据库的简单 Java 示例:
import java.sql.*;
public class MySQLConnectionExample {
public static void main(String[] args) {
// 设置数据库连接的相关信息
String url = "jdbc:mysql://localhost:3306/mydb"; // 数据库 URL
String user = "root"; // 数据库用户名
String password = "password"; // 数据库密码
// 创建数据库连接
try (Connection connection = DriverManager.getConnection(url, user, password)) {
// 输出连接成功的信息
System.out.println("Connected to MySQL database!");
// 创建 SQL 查询语句
String sql = "SELECT * FROM users"; // 假设有一个 "users" 表
// 创建 Statement 对象
try (Statement stmt = connection.createStatement()) {
// 执行查询并返回结果集
ResultSet resultSet = stmt.executeQuery(sql);
// 处理查询结果
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
}
} catch (SQLException e) {
// 处理数据库连接错误
e.printStackTrace();
}
}
}
关键步骤:
- DriverManager.getConnection():使用数据库 URL、用户名和密码创建连接。
- Statement:用于执行 SQL 查询。
- ResultSet:存储查询结果,可以逐行访问数据库中的数据。
4. 使用 JDBC 配置数据库连接池
为了提高数据库的性能,通常使用数据库连接池来管理连接。可以使用 Apache Commons DBCP 或 HikariCP 等库来实现。
示例:使用 HikariCP 配置连接池
- 添加 HikariCP 依赖:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
- 配置和使用 HikariCP 连接池:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.*;
public class HikariCPExample {
public static void main(String[] args) {
// 创建 Hikari 配置
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("root");
config.setPassword("password");
// 创建数据源
HikariDataSource dataSource = new HikariDataSource(config);
// 使用连接池获取连接
try (Connection connection = dataSource.getConnection()) {
System.out.println("Connected to MySQL database using HikariCP!");
String sql = "SELECT * FROM users";
try (Statement stmt = connection.createStatement()) {
ResultSet resultSet = stmt.executeQuery(sql);
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
HikariCP 提供了更高效的数据库连接池管理,适合高并发的数据库访问场景。
5. 常见问题及解决方案
1. ClassNotFoundException: com.mysql.cj.jdbc.Driver
- 这个错误通常表示缺少 MySQL JDBC 驱动程序。确保你已经正确添加了
mysql-connector-java
JAR 文件到类路径中,或者使用 Maven 引入依赖。
2. Communications link failure
- 这个错误通常发生在数据库连接失败时,原因可能是数据库服务器未启动、IP 地址不正确、端口被防火墙阻塞等。
- 确保 MySQL 服务器已启动,并检查
jdbc:mysql://localhost:3306/mydb
中的主机和端口是否正确。
3. Access Denied for user 'root'@'localhost'
- 确保你输入的数据库用户名和密码正确。你可以在 MySQL 命令行中测试连接是否正常。
6. 总结
Java 与 MySQL 的连接通过 JDBC 实现,基本步骤包括添加 MySQL JDBC 驱动、创建数据库连接、执行 SQL 查询、处理结果集以及关闭连接。为了提高性能,通常使用数据库连接池来管理数据库连接。
发表回复