diff --git a/ticketing-master/src/com/cn/dao/impl/AdminDaoImpl.java b/ticketing-master/src/com/cn/dao/impl/AdminDaoImpl.java index c8ca805..45e9562 100644 --- a/ticketing-master/src/com/cn/dao/impl/AdminDaoImpl.java +++ b/ticketing-master/src/com/cn/dao/impl/AdminDaoImpl.java @@ -1,162 +1,141 @@ -package com.cn.dao.impl; +package com.cn.dao.impl; // 数据访问对象实现包 -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; +import java.sql.*; // 导入SQL相关类 +import java.util.*; // 导入集合相关类 -import com.cn.dao.AdminDao; -import com.cn.domain.Admin; -import com.cn.util.JDBCUtil; +import com.cn.dao.AdminDao; // 导入AdminDao接口 +import com.cn.domain.Admin; // 导入Admin实体类 +import com.cn.util.JDBCUtil; // 导入JDBC工具类 /** - * @className AdminDaoImpl - * @description - * @author lxs - * @date 2019年9月1日 + * 实现AdminDao接口,提供管理员数据访问操作。 */ public class AdminDaoImpl implements AdminDao { - private Connection conn = null; - private PreparedStatement pstmt = null; - private ResultSet rs = null; + private Connection conn = null; // 数据库连接 + private PreparedStatement pstmt = null; // 预编译语句 + private ResultSet rs = null; // 结果集 - @Override - public int add(Admin admin) throws SQLException { - String sql = "insert into admins (username,password,creattime,flag,isuse,logintime) VALUES (?,?,?,?,?,?)"; + @Override + public int add(Admin admin) throws SQLException { // 添加管理员 + String sql = "insert into admins (username,password,creattime,flag,isuse,logintime) VALUES (?,?,?,?,?,?)"; + conn = JDBCUtil.getConnection(); // 获取连接 + pstmt = conn.prepareStatement(sql); // 准备SQL语句 + pstmt.setObject(1, admin.getUserName()); // 设置参数 + pstmt.setObject(2, admin.getPassword()); + pstmt.setObject(3, admin.getCreatTime()); + pstmt.setObject(4, admin.getFlag()); + pstmt.setObject(5, admin.getIsUse()); + pstmt.setObject(6, admin.getLoginTime()); + int status = pstmt.executeUpdate(); // 执行插入 + closeResources(); // 关闭资源 + return status; + } - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - pstmt.setObject(1, admin.getUserName()); - pstmt.setObject(2, admin.getPassword()); - pstmt.setObject(3, admin.getCreatTime()); - pstmt.setObject(4, admin.getFlag()); - pstmt.setObject(5, admin.getIsUse()); - pstmt.setObject(6, admin.getLoginTime()); - // 执行添加语句 - int status = pstmt.executeUpdate(); - // 关流 - pstmt.close(); - conn.close(); - - return status; - } + @Override + public int delete(int adminId) throws SQLException { // 删除管理员 + String sql = "delete from admins where adminid=?"; + conn = JDBCUtil.getConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setObject(1, adminId); + int status = pstmt.executeUpdate(); + closeResources(); + return status; + } - @Override - public int delete(int adminId) throws SQLException { - String sql = "delete from admins where adminid=?"; - - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - pstmt.setObject(1, adminId); - // 执行删除语句 - int status = pstmt.executeUpdate(); - - pstmt.close(); - conn.close(); - - return status; - } + @Override + public int update(Admin admin) throws SQLException { // 更新管理员信息 + String sql = "update admins set username=?,password=?,flag=?,isuse=?,logintime=? where adminid=?"; + conn = JDBCUtil.getConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setObject(1, admin.getUserName()); + pstmt.setObject(2, admin.getPassword()); + pstmt.setObject(3, admin.getFlag()); + pstmt.setObject(4, admin.getIsUse()); + pstmt.setObject(5, admin.getLoginTime()); + pstmt.setObject(6, admin.getAdminId()); + int status = pstmt.executeUpdate(); + closeResources(); + return status; + } - - @Override - public int update(Admin admin) throws SQLException { - String sql = "update admins set username=?,password=?,flag=?,isuse=?,logintime=? where adminid=?"; - - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - pstmt.setObject(1, admin.getUserName()); - pstmt.setObject(2, admin.getPassword()); - pstmt.setObject(3, admin.getFlag()); - pstmt.setObject(4, admin.getIsUse()); - pstmt.setObject(5, admin.getLoginTime()); - pstmt.setObject(6, admin.getAdminId()); - - int status = pstmt.executeUpdate(); - - pstmt.close(); - conn.close(); - - return status; - } + @Override + public Admin getById(int adminId) throws SQLException { // 根据ID获取管理员 + String sql = "select * from admins where adminid=?"; + conn = JDBCUtil.getConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setObject(1, adminId); + rs = pstmt.executeQuery(); + Admin admin = null; + if (rs.next()) { + admin = resultSetToAdmin(rs); // 将结果集转换为Admin对象 + } + closeResources(); + return admin; + } - @Override - public Admin getById(int adminId) throws SQLException { - String sql = "select * from admins where adminid=?"; - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - pstmt.setObject(1, adminId); - rs = pstmt.executeQuery(); - Admin admin = null; - while (rs.next()) { - String userName = rs.getString("userName"); - String password = rs.getString("password"); - Timestamp creatTime = rs.getTimestamp("creatTime"); - int flag = rs.getInt("flag"); - int isUse = rs.getInt("isUse"); - Timestamp loginTime = rs.getTimestamp("loginTime"); - admin = new Admin(adminId, userName, password, creatTime, flag, isUse, loginTime); - } - - rs.close(); - pstmt.close(); - conn.close(); - - return admin; - } + @Override + public List getAll() throws SQLException { // 获取所有管理员 + String sql = "select * from admins"; + conn = JDBCUtil.getConnection(); + pstmt = conn.prepareStatement(sql); + rs = pstmt.executeQuery(); + List admins = new ArrayList<>(); + while (rs.next()) { + admins.add(resultSetToAdmin(rs)); // 将结果集转换为Admin对象并添加到列表 + } + closeResources(); + return admins; + } - @Override - public List getAll() throws SQLException{ - String sql = "select * from admins"; - - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - rs = pstmt.executeQuery(); - - List admins = new ArrayList(); - while (rs.next()) { - int adminId = rs.getInt("adminId"); - String userName = rs.getString("userName"); - String password = rs.getString("password"); - Timestamp creatTime = rs.getTimestamp("creatTime"); - int flag = rs.getInt("flag"); - int isUse = rs.getInt("isUse"); - Timestamp loginTime = rs.getTimestamp("loginTime"); - Admin admin = new Admin(adminId, userName, password, creatTime, flag, isUse, loginTime); - admins.add(admin); - } - - rs.close(); - pstmt.close(); - conn.close(); - - return admins; - } + @Override + public Admin getByName(String userName) throws SQLException { // 根据用户名获取管理员 + String sql = "select * from admins where username=?"; + conn = JDBCUtil.getConnection(); + pstmt = conn.prepareStatement(sql); + pstmt.setObject(1, userName); + rs = pstmt.executeQuery(); + Admin admin = null; + if (rs.next()) { + admin = resultSetToAdmin(rs); // 将结果集转换为Admin对象 + } + closeResources(); + return admin; + } - @Override - public Admin getByName(String userName) throws SQLException { - String sql = "select * from admins where username=?"; - conn = JDBCUtil.getConnection(); - pstmt = conn.prepareStatement(sql); - pstmt.setObject(1, userName); - rs = pstmt.executeQuery(); - Admin admin = null; - while (rs.next()) { - int adminId = rs.getInt("adminId"); - String password = rs.getString("password"); - Timestamp creatTime = rs.getTimestamp("creatTime"); - int flag = rs.getInt("flag"); - int isUse = rs.getInt("isUse"); - Timestamp loginTime = rs.getTimestamp("loginTime"); - admin = new Admin(adminId, userName, password, creatTime, flag, isUse, loginTime); - } - - rs.close(); - pstmt.close(); - conn.close(); - - return admin; - } + // 将结果集转换为Admin对象的方法 + private Admin resultSetToAdmin(ResultSet rs) throws SQLException { + int adminId = rs.getInt("adminId"); + String userName = rs.getString("userName"); + String password = rs.getString("password"); + Timestamp creatTime = rs.getTimestamp("creatTime"); + int flag = rs.getInt("flag"); + int isUse = rs.getInt("isUse"); + Timestamp loginTime = rs.getTimestamp("loginTime"); + return new Admin(adminId, userName, password, creatTime, flag, isUse, loginTime); + } + + // 关闭数据库资源的方法 + private void closeResources() { + if (rs != null) { + try { + rs.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if (pstmt != null) { + try { + pstmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } }