Compare commits

...

3 Commits

15 changed files with 164 additions and 41 deletions

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -7,5 +7,6 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="mysql-connector-j-8.0.33" level="project" />
</component> </component>
</module> </module>

View File

@@ -1,4 +1,5 @@
package backend; package backend;
public class Main { public class Main {
} }

View File

@@ -5,7 +5,7 @@ import backend.service.interfaces.AuthService;
* 登录控制器接口,用于处理用户登录和注册相关的业务逻辑 * 登录控制器接口,用于处理用户登录和注册相关的业务逻辑
*/ */
public interface LoginController { public interface LoginController {
AuthService authService; // AuthService authService;
//getter/setter //getter/setter

View File

@@ -6,7 +6,7 @@ import backend.service.interfaces.DataQueryService;
* 定义了数据查询和管理的相关操作接口 * 定义了数据查询和管理的相关操作接口
*/ */
public interface QueryController { public interface QueryController {
DataQueryService dataService; // DataQueryService dataService;
//getter/setter //getter/setter
/** /**

View File

@@ -6,7 +6,7 @@ import backend.service.interfaces.UserService;
* 定义了用户管理相关的核心操作方法 * 定义了用户管理相关的核心操作方法
*/ */
public interface UserController { public interface UserController {
UserService userService; // UserService userService;
//getter/setter //getter/setter

View File

@@ -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<User> 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();
}
}

View File

@@ -7,7 +7,7 @@ import java.util.*;
* 用户数据访问接口 * 用户数据访问接口
* 定义了用户相关的数据库操作方法 * 定义了用户相关的数据库操作方法
*/ */
public interface UserDao { public interface UserDaoIF {
/** /**
* 根据用户名查找用户 * 根据用户名查找用户
* @param username 用户名 * @param username 用户名

View File

@@ -91,7 +91,7 @@ public class User {
* *
* @param createdAt 用户创建时间 * @param createdAt 用户创建时间
*/ */
public void setCreatedAt(Date createdAt) { public void setCreatedAt(Timestamp createdAt) {
this.createdAt = createdAt; this.createdAt = createdAt;
} }
@@ -145,7 +145,7 @@ public class User {
* *
* @return 用户创建时间 * @return 用户创建时间
*/ */
public Date getCreatedAt() { public Timestamp getCreatedAt() {
return createdAt; return createdAt;
} }
} }

View File

@@ -14,7 +14,9 @@ public enum LoginStatus {
PERMISSION_DENIED(496,"权限不足"), PERMISSION_DENIED(496,"权限不足"),
LOGOUT_SUCCESS(497,"登出成功"), LOGOUT_SUCCESS(497,"登出成功"),
NOT_LOGGED_IN(498,"未登录"), NOT_LOGGED_IN(498,"未登录"),
UNKNOWN_ERROR(499,"未知错误"); UNKNOWN_ERROR(499,"未知错误"),
REGISTER_FAILD(500,"注册失败");
private final int code; private final int code;
private final String msg; private final String msg;

View File

@@ -8,9 +8,9 @@ public class DBHelper {
/*** 以下请根据实际情况修改 ****/ /*** 以下请根据实际情况修改 ****/
private static final String IP = "kronecker.cc"; // ip地址 private static final String IP = "kronecker.cc"; // ip地址
private static final String PORT = "3306"; // 端口 private static final String PORT = "3306"; // 端口
private static final String DB_NAME = "CET4"; // 数据库名 private static final String DB_NAME = "DataManagerSystem"; // 数据库名
private static final String USER = "kronecker"; private static final String USER = "group";
private static final String PASSWORD = "20060825fhy."; private static final String PASSWORD = "123456";
/*** 以上请根据实际情况修改 ****/ /*** 以上请根据实际情况修改 ****/
private static final String DB_URL = String.format("jdbc:mysql://%s:%s/%s", IP, PORT, DB_NAME); private static final String DB_URL = String.format("jdbc:mysql://%s:%s/%s", IP, PORT, DB_NAME);
// 单例模式写法之一 // 单例模式写法之一

View File

@@ -20,14 +20,14 @@ public interface CaptchaUtils {
/** /**
* 私有构造函数,防止实例化 * 私有构造函数,防止实例化
*/ */
private CaptchaUtils(); //private CaptchaUtils();
/** /**
* 生成随机验证码 * 生成随机验证码
* *
* @return 生成的验证码字符串 * @return 生成的验证码字符串
*/ */
static String generateCaptcha(); //static String generateCaptcha();
/** /**
* 验证用户输入的验证码是否正确 * 验证用户输入的验证码是否正确
@@ -36,6 +36,6 @@ public interface CaptchaUtils {
* @param systemCaptcha 系统生成的验证码 * @param systemCaptcha 系统生成的验证码
* @return 验证结果正确返回true错误返回false * @return 验证结果正确返回true错误返回false
*/ */
static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha); //static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha);
} }

View File

@@ -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);
}

View File

@@ -10,7 +10,7 @@ public interface PasswordUtil {
* @param plainText 需要加密的明文密码字符串 * @param plainText 需要加密的明文密码字符串
* @return 加密后的密码字符串 * @return 加密后的密码字符串
*/ */
static String encrypt(String plainText); //static String encrypt(String plainText);
/** /**
* 验证明文密码与已加密密码是否匹配 * 验证明文密码与已加密密码是否匹配
@@ -19,6 +19,6 @@ public interface PasswordUtil {
* @param hashed 已加密的密码字符串 * @param hashed 已加密的密码字符串
* @return 如果匹配返回true否则返回false * @return 如果匹配返回true否则返回false
*/ */
static boolean verify(String plainText, String hashed); //static boolean verify(String plainText, String hashed);
} }

View File

@@ -9,13 +9,13 @@ public interface RoleUtil {
* @param role 待判断的角色字符串 * @param role 待判断的角色字符串
* @return 如果是管理员角色返回true否则返回false * @return 如果是管理员角色返回true否则返回false
*/ */
static boolean isAdmin(String role); //static boolean isAdmin(String role);
/** /**
* 判断给定的角色是否为普通用户角色 * 判断给定的角色是否为普通用户角色
* @param role 待判断的角色字符串 * @param role 待判断的角色字符串
* @return 如果是普通用户角色返回true否则返回false * @return 如果是普通用户角色返回true否则返回false
*/ */
static boolean isUser(String role); //static boolean isUser(String role);
} }