用Java语言,使用MVC模式写一段数据库增删改查业务代码
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();
}
}
}
原文地址: https://www.cveoy.top/t/topic/tFS 著作权归作者所有。请勿转载和采集!