实现了UserDao
This commit is contained in:
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal 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>
|
||||||
@@ -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>
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
package backend;
|
package backend;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import backend.service.interfaces.AuthService;
|
|||||||
* 登录控制器接口,用于处理用户登录和注册相关的业务逻辑
|
* 登录控制器接口,用于处理用户登录和注册相关的业务逻辑
|
||||||
*/
|
*/
|
||||||
public interface LoginController {
|
public interface LoginController {
|
||||||
AuthService authService;
|
// AuthService authService;
|
||||||
|
|
||||||
//getter/setter
|
//getter/setter
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import backend.service.interfaces.DataQueryService;
|
|||||||
* 定义了数据查询和管理的相关操作接口
|
* 定义了数据查询和管理的相关操作接口
|
||||||
*/
|
*/
|
||||||
public interface QueryController {
|
public interface QueryController {
|
||||||
DataQueryService dataService;
|
// DataQueryService dataService;
|
||||||
//getter/setter
|
//getter/setter
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import backend.service.interfaces.UserService;
|
|||||||
* 定义了用户管理相关的核心操作方法
|
* 定义了用户管理相关的核心操作方法
|
||||||
*/
|
*/
|
||||||
public interface UserController {
|
public interface UserController {
|
||||||
UserService userService;
|
// UserService userService;
|
||||||
|
|
||||||
//getter/setter
|
//getter/setter
|
||||||
|
|
||||||
|
|||||||
137
src/backend/dao/impl/UserDao.java
Normal file
137
src/backend/dao/impl/UserDao.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@ import java.util.*;
|
|||||||
* 用户数据访问接口
|
* 用户数据访问接口
|
||||||
* 定义了用户相关的数据库操作方法
|
* 定义了用户相关的数据库操作方法
|
||||||
*/
|
*/
|
||||||
public interface UserDao {
|
public interface UserDaoIF {
|
||||||
/**
|
/**
|
||||||
* 根据用户名查找用户
|
* 根据用户名查找用户
|
||||||
* @param username 用户名
|
* @param username 用户名
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
// 单例模式写法之一
|
// 单例模式写法之一
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user