Java连接MySQL数据库实现增删改查操作的完整实例教程

Java连接MySQL数据库实现增删改查操作的完整实例教程
在当今的软件开发领域,数据库操作是不可或缺的一部分。Java作为一种广泛使用的编程语言,与MySQL数据库的配合使用更是司空见惯。本文将为您提供一份详尽的教程,帮助您掌握如何使用Java连接MySQL数据库,并实现基本的增删改查(CRUD)操作。
一、准备工作
在开始之前,请确保您已经具备以下条件:
Java开发环境
:安装并配置好JDK。
MySQL数据库
:安装并运行MySQL服务器。
数据库驱动
:下载并添加MySQL JDBC驱动到您的项目中。
二、连接MySQL数据库
首先,我们需要编写代码来连接MySQL数据库。以下是连接数据库的基本步骤:
导入JDBC驱动
:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
加载驱动并建立连接
:
public class DatabaseConnection {
private static final String URL = “jdbc:mysql://localhost:3306/your_database”;
private static final String USER = “your_username”;
private static final String PASSWORD = “your_password”;

public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
三、实现增删改查操作
接下来,我们将实现数据库的增删改查操作。为了简化操作,我们假设有一个名为
users
的表,包含
id
,
name
,
email
三个字段。
创建表
:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
增加记录(Create)
:
public class UserDAO {
public void addUser(String name, String email) {
String sql = “INSERT INTO users (name, email) VALUES (?, ?)”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
查询记录(Read)
:
public List getUsers() {
List users = new ArrayList<>();
String sql = “SELECT id, name, email FROM users”;
try (Connection conn = DatabaseConnection.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt(“id”));
user.setName(rs.getString(“name”));
user.setEmail(rs.getString(“email”));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
更新记录(Update)
:
public void updateUser(int id, String name, String email) {
String sql = “UPDATE users SET name = ?, email = ? WHERE id = ?”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.setInt(3, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
删除记录(Delete)
:
public void deleteUser(int id) {
String sql = “DELETE FROM users WHERE id = ?”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
四、完整示例
为了更好地理解上述操作,我们将所有代码整合到一个完整的示例中:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

class User {
private int id;
private String name;
private String email;

// Getters and Setters
}

class DatabaseConnection {
private static final String URL = “jdbc:mysql://localhost:3306/your_database”;
private static final String USER = “your_username”;
private static final String PASSWORD = “your_password”;

public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}

class UserDAO {
public void addUser(String name, String email) {
String sql = “INSERT INTO users (name, email) VALUES (?, ?)”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

public List getUsers() {
List users = new ArrayList<>();
String sql = “SELECT id, name, email FROM users”;
try (Connection conn = DatabaseConnection.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt(“id”));
user.setName(rs.getString(“name”));
user.setEmail(rs.getString(“email”));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}

public void updateUser(int id, String name, String email) {
String sql = “UPDATE users SET name = ?, email = ? WHERE id = ?”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.setInt(3, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

public void deleteUser(int id) {
String sql = “DELETE FROM users WHERE id = ?”;
try (Connection conn = DatabaseConnection.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public class Main {
public static void main(String[] args) {
UserDAO userDAO = new UserDAO();

// 添加用户
userDAO.addUser(“Alice”, “alice@example.com”);
userDAO.addUser(“Bob”, “bob@example.com”);

// 查询用户
List users = userDAO.getUsers();
for (User user : users) {
System.out.println(“ID: ” + user.getId() + “, Name: ” + user.getName() + “, Email: ” + user.getEmail());
}

// 更新用户
userDAO.updateUser(1, “Alice Smith”, “alice.smith@example.com”);

// 删除用户
userDAO.deleteUser(2);
}
}
五、总结
通过本文的详细讲解,您已经学会了如何使用Java连接MySQL数据库,并实现了基本的增删改查操作。这些操作是数据库编程的基础,掌握它们将为您的软件开发之路奠定坚实的基础。
在实际开发中,您可能还需要处理更多的复杂情况,如事务管理、异常处理等。但只要掌握了本文所介绍的基本方法,您就能够逐步深入,应对更多的挑战。
希望这篇教程对您有所帮助,祝您编程愉快!