这里给出一个简单的例子来演示如何利用 DAO 设计模式和 ajax 技术实现数据库表 user 的增删改查操作。

首先,我们需要创建一个数据库表 user,包含 id、name 和 age 字段。

CREATE TABLE user (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  age INT
);

接下来,我们创建一个 User 类来表示数据库表 user 的记录。

public class User {
  private int id;
  private String name;
  private int age;

  // 构造函数
  public User(int id, String name, int age) {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  // getter 和 setter 方法
  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }
}

接下来,我们创建一个 UserDAO 类来处理数据库表 user 的增删改查操作。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UserDAO {
  private static final String URL = 'jdbc:mysql://localhost:3306/test';
  private static final String USERNAME = 'root';
  private static final String PASSWORD = 'password';

  // 获取数据库连接
  private Connection getConnection() throws SQLException {
    return DriverManager.getConnection(URL, USERNAME, PASSWORD);
  }

  // 关闭数据库连接
  private void closeConnection(Connection connection) throws SQLException {
    if (connection != null) {
      connection.close();
    }
  }

  // 添加用户
  public void addUser(User user) {
    Connection connection = null;
    PreparedStatement statement = null;
    try {
      connection = getConnection();
      String sql = 'INSERT INTO user (name, age) VALUES (?, ?)';
      statement = connection.prepareStatement(sql);
      statement.setString(1, user.getName());
      statement.setInt(2, user.getAge());
      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      try {
        if (statement != null) {
          statement.close();
        }
        closeConnection(connection);
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }

  // 删除用户
  public void deleteUser(int id) {
    Connection connection = null;
    PreparedStatement statement = null;
    try {
      connection = getConnection();
      String sql = 'DELETE FROM user WHERE id = ?';
      statement = connection.prepareStatement(sql);
      statement.setInt(1, id);
      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      try {
        if (statement != null) {
          statement.close();
        }
        closeConnection(connection);
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }

  // 更新用户
  public void updateUser(User user) {
    Connection connection = null;
    PreparedStatement statement = null;
    try {
      connection = getConnection();
      String sql = 'UPDATE user SET name = ?, age = ? WHERE id = ?';
      statement = connection.prepareStatement(sql);
      statement.setString(1, user.getName());
      statement.setInt(2, user.getAge());
      statement.setInt(3, user.getId());
      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      try {
        if (statement != null) {
          statement.close();
        }
        closeConnection(connection);
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }

  // 查询用户
  public List<User> getUsers() {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    List<User> users = new ArrayList<>();
    try {
      connection = getConnection();
      String sql = 'SELECT * FROM user';
      statement = connection.prepareStatement(sql);
      resultSet = statement.executeQuery();
      while (resultSet.next()) {
        int id = resultSet.getInt('id');
        String name = resultSet.getString('name');
        int age = resultSet.getInt('age');
        User user = new User(id, name, age);
        users.add(user);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      try {
        if (resultSet != null) {
          resultSet.close();
        }
        if (statement != null) {
          statement.close();
        }
        closeConnection(connection);
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    return users;
  }
}

最后,我们可以使用 ajax 技术来实现前端与后端的交互,通过发送 HTTP 请求来调用后端的增删改查方法。

// 添加用户
function addUser(name, age) {
  $.ajax({
    url: 'user',
    type: 'POST',
    data: {
      name: name,
      age: age
    },
    success: function(response) {
      console.log(response);
    }
  });
}

// 删除用户
function deleteUser(id) {
  $.ajax({
    url: 'user/' + id,
    type: 'DELETE',
    success: function(response) {
      console.log(response);
    }
  });
}

// 更新用户
function updateUser(id, name, age) {
  $.ajax({
    url: 'user/' + id,
    type: 'PUT',
    data: {
      name: name,
      age: age
    },
    success: function(response) {
      console.log(response);
    }
  });
}

// 查询用户
function getUsers() {
  $.ajax({
    url: 'user',
    type: 'GET',
    success: function(response) {
      console.log(response);
    }
  });
}

以上就是利用 DAO 设计模式和 ajax 技术实现数据库表 user 的增删改查操作的完整代码。

DAO 设计模式与 AJAX 实现数据库表 user 增删改查完整代码示例

原文地址: https://www.cveoy.top/t/topic/QG6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录