21xrx.com
2025-07-05 19:18:08 Saturday
登录
文章检索 我的文章 写文章
Java实现MySQL的增删改查功能
2023-06-16 11:08:56 深夜i     21     0
Java MySQL 增删改查

MySQL作为一个开源的关系型数据库管理系统,在Web应用开发中得到了广泛的应用。而Java作为一种常用的编程语言,在服务器端编程中也非常流行。在很多Java项目中,需要对数据库进行操作,其中最基本的就是增删改查。本文将介绍如何使用Java实现MySQL的增删改查功能。

1. Java连接MySQL数据库

在Java程序中连接MySQL数据库需要使用JDBC(Java Database Connectivity)技术。JDBC是一种Java语言访问数据库的标准规范,它提供了一套标准的接口,使得Java程序可以通过它与不同的数据库进行交互。以下是使用JDBC连接MySQL数据库的示例代码:

// 加载MySQL的驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 连接MySQL数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false", "root", "123456");

在上面的代码中,我们通过`Class.forName()`方法加载MySQL的驱动程序,然后使用`DriverManager.getConnection()`方法建立与MySQL数据库的连接。其中,URL参数指定了数据库的地址和端口号,`useSSL=false`表示不使用SSL连接,`root`和`123456`分别是MySQL数据库的用户名和密码。

2. 定义实体类和DAO类

在使用Java进行MySQL操作时,通常会先定义一个实体类来表示数据库中的一张表,然后再定义一个DAO(Data Access Object)类来封装与该表的CRUD(Create/Retrieve/Update/Delete)操作。以下是一个简单的示例代码:

public class User
  private int id;
  private String name;
  private int age;
  // 构造函数、Getter/Setter等省略
public class UserDao {
  // 数据库连接、预编译SQL语句等属性省略
  // 插入用户
  public void addUser(User user) {
    try {
      // 预编译SQL语句
      PreparedStatement pstmt = conn.prepareStatement("INSERT INTO user (name, age) VALUES (?, ?)");
      // 绑定参数
      pstmt.setString(1, user.getName());
      pstmt.setInt(2, user.getAge());
      // 执行SQL语句
      pstmt.executeUpdate();
    } catch (SQLException e) {
      // 异常处理省略
    }
  }
  // 根据ID查询用户
  public User getUserById(int id) {
    try {
      // 预编译SQL语句
      PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE id = ?");
      // 绑定参数
      pstmt.setInt(1, id);
      // 执行SQL语句
      ResultSet rs = pstmt.executeQuery();
      // 处理结果集
      if (rs.next()) {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setAge(rs.getInt("age"));
        return user;
      }
    } catch (SQLException e) {
      // 异常处理省略
    }
    return null;
  }
  // 更新用户
  public void updateUser(User user) {
    try {
      // 预编译SQL语句
      PreparedStatement pstmt = conn.prepareStatement("UPDATE user SET name = ?, age = ? WHERE id = ?");
      // 绑定参数
      pstmt.setString(1, user.getName());
      pstmt.setInt(2, user.getAge());
      pstmt.setInt(3, user.getId());
      // 执行SQL语句
      pstmt.executeUpdate();
    } catch (SQLException e) {
      // 异常处理省略
    }
  }
  // 删除用户
  public void deleteUser(int id) {
    try {
      // 预编译SQL语句
      PreparedStatement pstmt = conn.prepareStatement("DELETE FROM user WHERE id = ?");
      // 绑定参数
      pstmt.setInt(1, id);
      // 执行SQL语句
      pstmt.executeUpdate();
    } catch (SQLException e) {
      // 异常处理省略
    }
  }
}

在上面的代码中,我们定义了一个`User`实体类和一个`UserDao` DAO类。`UserDao`类中提供了增删改查等数据库操作,这些操作使用了预编译SQL语句来避免SQL注入攻击。另外,由于JDBC会抛出许多异常,这里为了简化代码省略了异常处理部分。

3. 使用示例

下面是一个使用Java实现MySQL增删改查的示例代码:

public class Main {
  public static void main(String[] args) {
    try {
      // 连接MySQL数据库
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false", "root", "123456");
      // 插入用户
      UserDao userDao = new UserDao(conn);
      User user = new User("张三", 20);
      userDao.addUser(user);
      // 查询用户
      User user2 = userDao.getUserById(1);
      System.out.println(user2.getName());
      // 更新用户
      user2.setAge(21);
      userDao.updateUser(user2);
      // 删除用户
      userDao.deleteUser(1);
      // 关闭连接
      conn.close();
    } catch (ClassNotFoundException | SQLException e) {
      e.printStackTrace();
    }
  }
}

在上面的代码中,我们先连接MySQL数据库,然后创建一个`UserDao`对象进行增删改查等操作。这里只是演示了基本的增删改查操作,实际应用中需要根据业务需求进行相应的修改和扩展。

  
  

评论区