9.10
[实验任务二]:单一职责原则
登录模块在实际项目开发中很常见,请按照教材28页(PPT49页)利用单一职责原则重构后的类图实现这一模块。
实验要求:
1.提交源代码和对应的数据库文件(注意将此模块保存,以备以后使用);
2.注意编程规范。
1.User.java public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } // Getters and Setters } 2.UserRepository.java import java.sql.*; public class UserRepository { private Connection connection; public UserRepository(Connection connection) { this.connection = connection; } public User findUserByUsername(String username) { try { PreparedStatement stmt = connection.prepareStatement("SELECT * FROM Users WHERE username = ?"); stmt.setString(1, username); ResultSet rs = stmt.executeQuery(); if (rs.next()) { return new User(rs.getString("username"), rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); } return null; } } 3.AuthService.java public class AuthService { private UserRepository userRepository; public AuthService(UserRepository userRepository) { this.userRepository = userRepository; } public boolean login(String username, String password) { User user = userRepository.findUserByUsername(username); return user != null && user.getPassword().equals(password); // 简化示例,真实应用中应使用哈希密码 } } 4.LoginController.java public class LoginController { private AuthService authService; public LoginController(AuthService authService) { this.authService = authService; } public void handleLogin(String username, String password) { if (authService.login(username, password)) { System.out.println("登录成功!"); } else { System.out.println("登录失败,用户名或密码错误。"); } } } 5.数据库文件 (SQL) CREATE DATABASE UserDB; USE UserDB; CREATE TABLE Users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL );
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!