diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DataManagerSystem.iml b/DataManagerSystem.iml index c90834f..d2ae8bf 100644 --- a/DataManagerSystem.iml +++ b/DataManagerSystem.iml @@ -7,5 +7,6 @@ + \ No newline at end of file diff --git a/src/backend/Main.java b/src/backend/Main.java index b1fbec1..dd7b22c 100644 --- a/src/backend/Main.java +++ b/src/backend/Main.java @@ -1,4 +1,5 @@ package backend; public class Main { + } diff --git a/src/backend/controller/interfaces/LoginController.java b/src/backend/controller/interfaces/LoginController.java index 4b51b11..7cbe6cd 100644 --- a/src/backend/controller/interfaces/LoginController.java +++ b/src/backend/controller/interfaces/LoginController.java @@ -5,7 +5,7 @@ import backend.service.interfaces.AuthService; * 登录控制器接口,用于处理用户登录和注册相关的业务逻辑 */ public interface LoginController { - AuthService authService; +// AuthService authService; //getter/setter diff --git a/src/backend/controller/interfaces/QueryController.java b/src/backend/controller/interfaces/QueryController.java index 2e14def..2f11a49 100644 --- a/src/backend/controller/interfaces/QueryController.java +++ b/src/backend/controller/interfaces/QueryController.java @@ -6,7 +6,7 @@ import backend.service.interfaces.DataQueryService; * 定义了数据查询和管理的相关操作接口 */ public interface QueryController { - DataQueryService dataService; +// DataQueryService dataService; //getter/setter /** diff --git a/src/backend/controller/interfaces/UserController.java b/src/backend/controller/interfaces/UserController.java index 674e186..58c7395 100644 --- a/src/backend/controller/interfaces/UserController.java +++ b/src/backend/controller/interfaces/UserController.java @@ -6,7 +6,7 @@ import backend.service.interfaces.UserService; * 定义了用户管理相关的核心操作方法 */ public interface UserController { - UserService userService; +// UserService userService; //getter/setter diff --git a/src/backend/dao/impl/UserDao.java b/src/backend/dao/impl/UserDao.java new file mode 100644 index 0000000..701ca8f --- /dev/null +++ b/src/backend/dao/impl/UserDao.java @@ -0,0 +1,137 @@ +package backend.dao.impl; + +import backend.dao.interfaces.UserDaoIF; +import backend.model.User; +import backend.utils.DBHelper; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public class UserDao implements UserDaoIF { + + @Override + public User findByUsername(String username) { + User user = null; + //1. 从连接池中创建数据库连接 + Connection conn = DBHelper.getInstance().getConnection(); + //2. 创建Statement对象 + String sql = "select username,password,role,email,createdAt from USER where username = ?"; + try { + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.setString(1, username); + ResultSet rs = stmt.executeQuery(); + while (rs.next()) { + user = new User(); + user.setUsername(rs.getString("username")); + user.setPassword(rs.getString("password")); + user.setRole(rs.getString("role")); + user.setEmail(rs.getString("email")); + user.setCreatedAt(rs.getTimestamp("createdAt")); + } + } catch (SQLException e) { + System.out.println("查询用户失败: " + e.getMessage()); + } + return user; + } + @Override + public User findById(int id) { + User user = null; + //1. 从连接池中创建数据库连接 + Connection conn = DBHelper.getInstance().getConnection(); + //2. 创建Statement对象 + String sql = "select username,password,role,email,createdAt from USER where id = ?"; + try{ + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.setInt(1,id); + ResultSet rs = stmt.executeQuery(); + while(rs.next()) { + user = new User(); + user.setUsername(rs.getString("username")); + user.setPassword(rs.getString("password")); + user.setRole(rs.getString("role")); + user.setEmail(rs.getString("email")); + user.setCreatedAt(rs.getTimestamp("createdAt")); + } + }catch (SQLException e) { + System.out.println("查询用户失败: " + e.getMessage()); + } + return user; + } + + @Override + public boolean addUser(User user) { + Connection conn = DBHelper.getInstance().getConnection(); + String sql = "insert into USER (username,password,role,email,createdAt) values (?,?,?,?,?)"; + try{ + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.setString(1,user.getUsername()); + stmt.setString(2,user.getPassword()); + stmt.setString(3,user.getRole()); + stmt.setString(4,user.getEmail()); + stmt.setTimestamp(5,user.getCreatedAt()); + return stmt.executeUpdate() > 0; + } catch (SQLException e) { + System.out.println("添加用户失败: " + e.getMessage()); + } + return false; + } + + @Override + public boolean updateUser(User user) { + Connection conn = DBHelper.getInstance().getConnection(); + String sql = "update USER set username = ?,password = ?,role = ?,email = ?,createdAt = ? where id = ?"; + try{ + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.setString(1,user.getUsername()); + stmt.setString(2,user.getPassword()); + stmt.setString(3,user.getRole()); + stmt.setString(4,user.getEmail()); + stmt.setTimestamp(5,user.getCreatedAt()); + stmt.setInt(6,user.getId()); + return stmt.executeUpdate() > 0; + } catch (SQLException e) { + System.out.println("更新用户失败: " + e.getMessage()); + } + return false; + } + + @Override + public boolean deleteUser(int id) { + Connection conn = DBHelper.getInstance().getConnection(); + String sql = "delete from USER where id = ?"; + try{ + PreparedStatement stmt = conn.prepareStatement(sql); + stmt.setInt(1,id); + return stmt.executeUpdate() > 0; + } catch (SQLException e) { + System.out.println("删除用户失败: " + e.getMessage()); + } + return false; + } + + @Override + public List findAll() { + Connection conn = DBHelper.getInstance().getConnection(); + String sql = "select id,username,password,role,email,createdAt from USER"; + try { + PreparedStatement stmt = conn.prepareStatement(sql); + ResultSet rs = stmt.executeQuery(); + while (rs.next()) { + User user = new User(); + user.setId(rs.getInt("id")); + user.setUsername(rs.getString("username")); + user.setPassword(rs.getString("password")); + user.setRole(rs.getString("role")); + user.setEmail(rs.getString("email")); + user.setCreatedAt(rs.getTimestamp("createdAt")); + return List.of(user); + } + }catch (SQLException e) { + System.out.println("查询所有用户失败: " + e.getMessage()); + } + return List.of(); + } +} diff --git a/src/backend/dao/interfaces/UserDao.java b/src/backend/dao/interfaces/UserDaoIF.java similarity index 97% rename from src/backend/dao/interfaces/UserDao.java rename to src/backend/dao/interfaces/UserDaoIF.java index f9a85d5..6b32412 100644 --- a/src/backend/dao/interfaces/UserDao.java +++ b/src/backend/dao/interfaces/UserDaoIF.java @@ -7,7 +7,7 @@ import java.util.*; * 用户数据访问接口 * 定义了用户相关的数据库操作方法 */ -public interface UserDao { +public interface UserDaoIF { /** * 根据用户名查找用户 * @param username 用户名 diff --git a/src/backend/model/User.java b/src/backend/model/User.java index aa25176..dea24df 100644 --- a/src/backend/model/User.java +++ b/src/backend/model/User.java @@ -91,7 +91,7 @@ public class User { * * @param createdAt 用户创建时间 */ - public void setCreatedAt(Date createdAt) { + public void setCreatedAt(Timestamp createdAt) { this.createdAt = createdAt; } @@ -145,7 +145,7 @@ public class User { * * @return 用户创建时间 */ - public Date getCreatedAt() { + public Timestamp getCreatedAt() { return createdAt; } } diff --git a/src/backend/utils/DBHelper.java b/src/backend/utils/DBHelper.java index c1700f7..e808f61 100644 --- a/src/backend/utils/DBHelper.java +++ b/src/backend/utils/DBHelper.java @@ -8,9 +8,9 @@ public class DBHelper { /*** 以下请根据实际情况修改 ****/ private static final String IP = "kronecker.cc"; // ip地址 private static final String PORT = "3306"; // 端口 - private static final String DB_NAME = "CET4"; // 数据库名 - private static final String USER = "kronecker"; - private static final String PASSWORD = "20060825fhy."; + private static final String DB_NAME = "DataManagerSystem"; // 数据库名 + private static final String USER = "group"; + private static final String PASSWORD = "123456"; /*** 以上请根据实际情况修改 ****/ private static final String DB_URL = String.format("jdbc:mysql://%s:%s/%s", IP, PORT, DB_NAME); // 单例模式写法之一 diff --git a/src/backend/utils/interfaces/CaptchaUtils.java b/src/backend/utils/interfaces/CaptchaUtils.java index 240bcab..abaae81 100644 --- a/src/backend/utils/interfaces/CaptchaUtils.java +++ b/src/backend/utils/interfaces/CaptchaUtils.java @@ -20,14 +20,14 @@ public interface CaptchaUtils { /** * 私有构造函数,防止实例化 */ - private CaptchaUtils(); + //private CaptchaUtils(); /** * 生成随机验证码 * * @return 生成的验证码字符串 */ - static String generateCaptcha(); + //static String generateCaptcha(); /** * 验证用户输入的验证码是否正确 @@ -36,6 +36,6 @@ public interface CaptchaUtils { * @param systemCaptcha 系统生成的验证码 * @return 验证结果,正确返回true,错误返回false */ - static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha); + //static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha); } diff --git a/src/backend/utils/interfaces/DBUtil.java b/src/backend/utils/interfaces/DBUtil.java deleted file mode 100644 index f6e76bc..0000000 --- a/src/backend/utils/interfaces/DBUtil.java +++ /dev/null @@ -1,24 +0,0 @@ -package backend.utils.interfaces; -import java.sql.*; - -/** - * 数据库工具接口,提供数据库连接和资源关闭的通用方法 - */ -public interface DBUtil { - /** - * 获取数据库连接对象 - * - * @return Connection 数据库连接对象,用于执行SQL语句 - */ - static Connection getConnection(); - - /** - * 关闭数据库相关资源,包括连接、语句和结果集 - * - * @param conn 数据库连接对象,需要被关闭的连接 - * @param stmt SQL语句对象,需要被关闭的语句 - * @param rs 结果集对象,需要被关闭的结果集 - */ - static void close(Connection conn, Statement stmt, ResultSet rs); -} - diff --git a/src/backend/utils/interfaces/PasswordUtil.java b/src/backend/utils/interfaces/PasswordUtil.java index ebe5119..5f003df 100644 --- a/src/backend/utils/interfaces/PasswordUtil.java +++ b/src/backend/utils/interfaces/PasswordUtil.java @@ -10,7 +10,7 @@ public interface PasswordUtil { * @param plainText 需要加密的明文密码字符串 * @return 加密后的密码字符串 */ - static String encrypt(String plainText); + //static String encrypt(String plainText); /** * 验证明文密码与已加密密码是否匹配 @@ -19,6 +19,6 @@ public interface PasswordUtil { * @param hashed 已加密的密码字符串 * @return 如果匹配返回true,否则返回false */ - static boolean verify(String plainText, String hashed); + //static boolean verify(String plainText, String hashed); } diff --git a/src/backend/utils/interfaces/RoleUtil.java b/src/backend/utils/interfaces/RoleUtil.java index 7305022..d24f9af 100644 --- a/src/backend/utils/interfaces/RoleUtil.java +++ b/src/backend/utils/interfaces/RoleUtil.java @@ -9,13 +9,13 @@ public interface RoleUtil { * @param role 待判断的角色字符串 * @return 如果是管理员角色返回true,否则返回false */ - static boolean isAdmin(String role); + //static boolean isAdmin(String role); /** * 判断给定的角色是否为普通用户角色 * @param role 待判断的角色字符串 * @return 如果是普通用户角色返回true,否则返回false */ - static boolean isUser(String role); + //static boolean isUser(String role); }