在Java开发中,数据库连接是一个非常常见的需求。MySQL是一种广泛使用的开源关系型数据库管理系统,而mysql-connector-java
是用于Java与MySQL之间连接的官方JDBC驱动。下面,我们将讨论如何使用mysql-connector-java
连接MySQL数据库,并给出相应的代码示例。
一、准备工作
在开始之前,请确保以下几点:
- 安装MySQL:确保你的机器上已安装MySQL,并且能够正常运行。
- 创建数据库:可以通过MySQL命令行或图形界面工具(如MySQL Workbench)创建一个测试数据库。例如,创建一个名为
testdb
的数据库。 - 添加JDBC驱动:将
mysql-connector-java
的JAR包添加到项目的构建路径中。你可以在MySQL官方网站下载最新版本的驱动。
二、Java代码示例
以下是一个简单的Java程序示例,它演示如何连接到MySQL数据库并执行基本的SQL操作(例如插入和查询)。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MySQLConnectionExample {
// JDBC URL,用户名和密码
private static final String URL = "jdbc:mysql://localhost:3306/testdb?useSSL=false";
private static final String USER = "root"; // MySQL用户名
private static final String PASSWORD = "yourpassword"; // MySQL密码
public static void main(String[] args) {
Connection connection = null;
try {
// 1. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立连接
connection = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("数据库连接成功!");
// 3. 创建表(如果未创建过)
String createTableSQL = "CREATE TABLE IF NOT EXISTS users " +
"(id INT AUTO_INCREMENT PRIMARY KEY, " +
" name VARCHAR(100), " +
" email VARCHAR(100))";
executeUpdate(connection, createTableSQL);
// 4. 插入数据
String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";
try (PreparedStatement preparedStatement = connection.prepareStatement(insertSQL)) {
preparedStatement.setString(1, "张三");
preparedStatement.setString(2, "zhangsan@example.com");
preparedStatement.executeUpdate();
System.out.println("数据插入成功!");
}
// 5. 查询数据
String selectSQL = "SELECT id, name, email FROM users";
try (PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
ResultSet resultSet = preparedStatement.executeQuery()) {
System.out.println("查询结果:");
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id") +
", 姓名: " + resultSet.getString("name") +
", 邮箱: " + resultSet.getString("email"));
}
}
} catch (ClassNotFoundException e) {
System.err.println("MySQL JDBC驱动未找到!");
e.printStackTrace();
} catch (SQLException e) {
System.err.println("数据库连接失败!");
e.printStackTrace();
} finally {
// 6. 关闭连接
if (connection != null) {
try {
connection.close();
System.out.println("数据库连接已关闭。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
// 执行更新的通用方法
private static void executeUpdate(Connection connection, String sql) throws SQLException {
try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
preparedStatement.executeUpdate();
}
}
}
三、代码说明
- 注册驱动:通过
Class.forName("com.mysql.cj.jdbc.Driver")
注册MySQL JDBC驱动。 - 建立连接:使用
DriverManager.getConnection(URL, USER, PASSWORD)
方法连接到数据库。 - 创建表:通过执行CREATE TABLE语句来创建一个用户表(如果尚不存在)。
- 插入数据:使用
PreparedStatement
来插入数据,这样不仅可以防止SQL注入,还能够提高性能。 - 查询数据:查询并打印出数据库中的数据。
- 关闭连接:最后确保在
finally
块中关闭数据库连接,以释放资源。
通过上述代码示例,你可以看到如何在Java中有效地连接到MySQL数据库并进行基本的操作。希望这篇文章能够帮助你更好地理解Java与MySQL的连接方式。