实现了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>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="mysql-connector-j-8.0.33" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -1,4 +1,5 @@
|
||||
package backend;
|
||||
|
||||
public class Main {
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import backend.service.interfaces.AuthService;
|
||||
* 登录控制器接口,用于处理用户登录和注册相关的业务逻辑
|
||||
*/
|
||||
public interface LoginController {
|
||||
AuthService authService;
|
||||
// AuthService authService;
|
||||
|
||||
//getter/setter
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import backend.service.interfaces.DataQueryService;
|
||||
* 定义了数据查询和管理的相关操作接口
|
||||
*/
|
||||
public interface QueryController {
|
||||
DataQueryService dataService;
|
||||
// DataQueryService dataService;
|
||||
//getter/setter
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,7 @@ import backend.service.interfaces.UserService;
|
||||
* 定义了用户管理相关的核心操作方法
|
||||
*/
|
||||
public interface UserController {
|
||||
UserService userService;
|
||||
// UserService userService;
|
||||
|
||||
//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 用户名
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
// 单例模式写法之一
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 需要加密的明文密码字符串
|
||||
* @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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user