Model层:

public class User {
    private int id;
    private String name;
    private int age;
    private String email;
    
    // getters and setters
    // toString method
}

public class UserDao {
    private Connection conn;

    public UserDao(Connection conn) {
        this.conn = conn;
    }
    
    public List<User> findAll() throws SQLException {
        List<User> userList = new ArrayList<>();
        String sql = "SELECT * FROM user";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            try (ResultSet rs = ps.executeQuery()) {
                while (rs.next()) {
                    User user = new User();
                    user.setId(rs.getInt("id"));
                    user.setName(rs.getString("name"));
                    user.setAge(rs.getInt("age"));
                    user.setEmail(rs.getString("email"));
                    userList.add(user);
                }
            }
        }
        return userList;
    }
    
    public User findById(int id) throws SQLException {
        User user = null;
        String sql = "SELECT * FROM user WHERE id=?";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setInt(1, id);
            try (ResultSet rs = ps.executeQuery()) {
                if (rs.next()) {
                    user = new User();
                    user.setId(rs.getInt("id"));
                    user.setName(rs.getString("name"));
                    user.setAge(rs.getInt("age"));
                    user.setEmail(rs.getString("email"));
                }
            }
        }
        return user;
    }
    
    public void insert(User user) throws SQLException {
        String sql = "INSERT INTO user(name, age, email) VALUES(?, ?, ?)";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setString(1, user.getName());
            ps.setInt(2, user.getAge());
            ps.setString(3, user.getEmail());
            ps.executeUpdate();
        }
    }
    
    public void update(User user) throws SQLException {
        String sql = "UPDATE user SET name=?, age=?, email=? WHERE id=?";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setString(1, user.getName());
            ps.setInt(2, user.getAge());
            ps.setString(3, user.getEmail());
            ps.setInt(4, user.getId());
            ps.executeUpdate();
        }
    }
    
    public void delete(int id) throws SQLException {
        String sql = "DELETE FROM user WHERE id=?";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setInt(1, id);
            ps.executeUpdate();
        }
    }
}

View层:

public class UserView {
    private Scanner scanner;
    private UserDao userDao;

    public UserView(UserDao userDao) {
        this.scanner = new Scanner(System.in);
        this.userDao = userDao;
    }
    
    public void showMenu() {
        System.out.println("1. Show all users");
        System.out.println("2. Find user by id");
        System.out.println("3. Add user");
        System.out.println("4. Update user");
        System.out.println("5. Delete user");
        System.out.println("0. Exit");
    }
    
    public void showAllUsers() throws SQLException {
        List<User> userList = userDao.findAll();
        for (User user : userList) {
            System.out.println(user);
        }
    }
    
    public void findUserById() throws SQLException {
        System.out.print("Enter user id: ");
        int id = scanner.nextInt();
        User user = userDao.findById(id);
        if (user == null) {
            System.out.println("User not found.");
        } else {
            System.out.println(user);
        }
    }
    
    public void addUser() throws SQLException {
        User user = new User();
        System.out.print("Enter user name: ");
        user.setName(scanner.next());
        System.out.print("Enter user age: ");
        user.setAge(scanner.nextInt());
        System.out.print("Enter user email: ");
        user.setEmail(scanner.next());
        userDao.insert(user);
        System.out.println("User added successfully.");
    }
    
    public void updateUser() throws SQLException {
        System.out.print("Enter user id: ");
        int id = scanner.nextInt();
        User user = userDao.findById(id);
        if (user == null) {
            System.out.println("User not found.");
        } else {
            System.out.print("Enter user name: ");
            user.setName(scanner.next());
            System.out.print("Enter user age: ");
            user.setAge(scanner.nextInt());
            System.out.print("Enter user email: ");
            user.setEmail(scanner.next());
            userDao.update(user);
            System.out.println("User updated successfully.");
        }
    }
    
    public void deleteUser() throws SQLException {
        System.out.print("Enter user id: ");
        int id = scanner.nextInt();
        User user = userDao.findById(id);
        if (user == null) {
            System.out.println("User not found.");
        } else {
            userDao.delete(id);
            System.out.println("User deleted successfully.");
        }
    }
}

Controller层:

public class UserController {
    private UserView userView;
    private UserDao userDao;

    public UserController(UserView userView, UserDao userDao) {
        this.userView = userView;
        this.userDao = userDao;
    }
    
    public void run() throws SQLException {
        boolean exit = false;
        while (!exit) {
            userView.showMenu();
            int choice = userView.getChoice();
            switch (choice) {
                case 1:
                    userView.showAllUsers();
                    break;
                case 2:
                    userView.findUserById();
                    break;
                case 3:
                    userView.addUser();
                    break;
                case 4:
                    userView.updateUser();
                    break;
                case 5:
                    userView.deleteUser();
                    break;
                case 0:
                    exit = true;
                    break;
                default:
                    System.out.println("Invalid choice.");
                    break;
            }
        }
    }
}

Main方法:

public class Main {
    public static void main(String[] args) throws SQLException {
        try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password")) {
            UserDao userDao = new UserDao(conn);
            UserView userView = new UserView(userDao);
            UserController userController = new UserController(userView, userDao);
            userController.run();
        }
    }
}
用Java语言,使用MVC模式写一段数据库增删改查业务代码

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

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