MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
通过本文的介绍,你已经学会了如何在 Java 中连接 MySQL 数据库并实现数据交互。数据库连接:使用 JDBC 连接 MySQL 数据库。数据操作:实现插入、查询、更新和删除(CRUD)操作。最佳实践:使用避免 SQL 注入。在实际应用中,建议使用连接池(如 HikariCP 或 DBCP)来提高性能和资源利用率。同时,可以考虑使用 ORM 框架(如 Hibernate 或 MyBatis)来
在现代应用中,数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言,提供了丰富的 API 来与各种数据库进行交互。本文将详细介绍如何在 Java 中连接 MySQL 数据库,并实现基本的数据交互功能。
一、环境准备
1.1 安装 MySQL
首先,确保你已经安装了 MySQL 数据库。可以通过 MySQL 官网 下载并安装适合你操作系统的版本。
1.2 创建数据库和表
在安装完成后,登录 MySQL 命令行工具,创建一个名为 test_db
的数据库,并在其中创建一个名为 users
的表:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
1.3 添加 MySQL Connector/J 依赖
在 Java 项目中,你需要添加 MySQL Connector/J 作为依赖。如果你使用 Maven,可以在 pom.xml
中添加如下依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version> <!-- 请根据最新版本更新 -->
</dependency>
二、Java 代码实现
2.1 创建数据库连接
接下来,在 Java 代码中实现与 MySQL 数据库的连接。以下是一个简单的连接示例:
package com.example.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnection {
private static final String URL = "jdbc:mysql://localhost:3306/test_db"; // 数据库地址
private static final String USER = "root"; // 数据库用户名
private static final String PASSWORD = "your_password"; // 数据库密码
public static Connection getConnection() {
Connection connection = null;
try {
// 加载 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取数据库连接
connection = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("数据库连接成功!");
} catch (ClassNotFoundException e) {
System.out.println("找不到 JDBC 驱动!" + e.getMessage());
} catch (SQLException e) {
System.out.println("数据库连接失败!" + e.getMessage());
}
return connection;
}
}
2.2 插入数据
接下来,我们编写一个方法来插入用户数据到 users
表中:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserDAO {
public void addUser(String username, String password) {
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
try (Connection connection = MySQLConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
int rowsAffected = preparedStatement.executeUpdate();
System.out.println("成功插入 " + rowsAffected + " 行数据。");
} catch (SQLException e) {
System.out.println("插入数据失败!" + e.getMessage());
}
}
}
2.3 查询数据
下面是一个查询用户数据的方法:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDAO {
// 其他代码...
public void getAllUsers() {
String sql = "SELECT * FROM users";
try (Connection connection = MySQLConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String username = resultSet.getString("username");
String password = resultSet.getString("password");
System.out.println("用户ID: " + id + ", 用户名: " + username + ", 密码: " + password);
}
} catch (SQLException e) {
System.out.println("查询数据失败!" + e.getMessage());
}
}
}
2.4 更新数据
更新用户信息的方法如下:
public class UserDAO {
// 其他代码...
public void updateUserPassword(int id, String newPassword) {
String sql = "UPDATE users SET password = ? WHERE id = ?";
try (Connection connection = MySQLConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
preparedStatement.setString(1, newPassword);
preparedStatement.setInt(2, id);
int rowsAffected = preparedStatement.executeUpdate();
System.out.println("成功更新 " + rowsAffected + " 行数据。");
} catch (SQLException e) {
System.out.println("更新数据失败!" + e.getMessage());
}
}
}
2.5 删除数据
删除用户数据的方法如下:
public class UserDAO {
// 其他代码...
public void deleteUser(int id) {
String sql = "DELETE FROM users WHERE id = ?";
try (Connection connection = MySQLConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
preparedStatement.setInt(1, id);
int rowsAffected = preparedStatement.executeUpdate();
System.out.println("成功删除 " + rowsAffected + " 行数据。");
} catch (SQLException e) {
System.out.println("删除数据失败!" + e.getMessage());
}
}
}
三、测试代码
在主程序中测试上述功能,创建 Main
类并添加如下代码:
public class Main {
public static void main(String[] args) {
UserDAO userDAO = new UserDAO();
// 插入用户
userDAO.addUser("john_doe", "password123");
// 查询用户
userDAO.getAllUsers();
// 更新用户密码
userDAO.updateUserPassword(1, "new_password");
// 查询用户
userDAO.getAllUsers();
// 删除用户
userDAO.deleteUser(1);
// 查询用户
userDAO.getAllUsers();
}
}
四、总结
通过本文的介绍,你已经学会了如何在 Java 中连接 MySQL 数据库并实现数据交互。主要内容包括:
- 数据库连接:使用 JDBC 连接 MySQL 数据库。
- 数据操作:实现插入、查询、更新和删除(CRUD)操作。
- 最佳实践:使用
PreparedStatement
避免 SQL 注入。
在实际应用中,建议使用连接池(如 HikariCP 或 DBCP)来提高性能和资源利用率。同时,可以考虑使用 ORM 框架(如 Hibernate 或 MyBatis)来简化数据库操作,提高开发效率。希望本文能帮助你快速上手 Java 与 MySQL 的数据交互!
更多推荐
所有评论(0)