用户管理的实现
- 导入分页工具类
- 导入user list
获取用户数量
-
dao
//根据用户名和用户角色查询总数 public int getUserCount(String userName, int userRole) throws SQLException;
-
daoImpl
@Override public int getUserCount(String userName, int userRole) throws SQLException { Connection conn = BaseDao.getConn(); PreparedStatement pst = null; ResultSet rs = null; int count = 0; if (conn != null){ //用StringBuffer 是因为后面需要拼接 StringBuffer sql = new StringBuffer(); sql.append("SELECT COUNT(1) AS count FROM smbms_user u,smbms_role r WHERE u.userRole=r.id"); ArrayList<Object> list = new ArrayList<>();//存放参数 if (userName != null && userName.length() != 0){ sql.append(" AND u.userName LIKE ?"); list.add("%" + userName + "%");//list[0] } if (userRole > 0){ sql.append(" AND r.id=?"); list.add(userRole);//list[1] } Object[] params = list.toArray();//将list转为数组 rs = BaseDao.executeQ(conn, pst, rs, sql.toString(), params); if (rs.next()){ count = rs.getInt("count"); } } BaseDao.close(conn, pst, rs); return count; }
-
service
//根据用户名和用户角色查询总数 public int getUserCount(String userName, int userRole);
-
serviceImpl
@Override public int getUserCount(String userName, int userRole) { UserDao userDao = new UserDaoImpl(); int count = 0; try { count = userDao.getUserCount(userName, userRole); } catch (SQLException e) { e.printStackTrace(); } return count; }
获取用户列表
-
dao
//查询每页的用户列表 public List<User> getUserList(String userName, int userRole, int currentPage, int pageSie) throws SQLException;
-
daoImpl
@Override public List getUserList(String userName, int userRole, int currentPage, int pageSie) throws SQLException { Connection conn = BaseDao.getConn(); PreparedStatement pst = null; ResultSet rs = null; int count = 0; ArrayList<Object> userList = new ArrayList<>(); if (conn != null){ StringBuffer sql = new StringBuffer(); sql.append("SELECT *,r.roleName FROM smbms_user u,smbms_role r WHERE u.userRole=r.id"); ArrayList<Object> list = new ArrayList<>();//存放参数 if (userName != null && userName.length() != 0){ sql.append(" AND u.userName LIKE ?"); list.add("%" + userName + "%");//list[0] } if (userRole > 0){ sql.append(" AND r.id=?"); list.add(userRole);//list[1] } sql.append(" LIMIT ?,?"); currentPage = (currentPage - 1) * pageSie; pageSie = pageSie; list.add(currentPage);//list[2] list.add(pageSie);//list[3] Object[] params = list.toArray();//将list转为数组 rs = BaseDao.executeQ(conn, pst, rs, sql.toString(), params); while (rs.next()){ User _user = new User(); _user.setId(rs.getInt("id")); _user.setUserCode(rs.getString("userCode")); _user.setUserName(rs.getString("userName")); _user.setGender(rs.getInt("gender")); _user.setBirthday(rs.getDate("birthday")); _user.setPhone(rs.getString("phone")); _user.setUserRole(rs.getInt("userRole")); _user.setUserRoleName(rs.getString("userRoleName")); userList.add(_user);//ti } BaseDao.close(conn, pst, rs); } return userList; }
-
service
//查询每页的用户列表 public List<User> getUserList(String userName, int userRole, int currentPage, int pageSie) ;
-
serviceImpl
@Override public List<User> getUserList(String userName, int userRole, int currentPage, int pageSie) { UserDao userDao = new UserDaoImpl(); List<User> userList = null; try { userList = userDao.getUserList(userName, userRole, currentPage, pageSie); } catch (SQLException e) { e.printStackTrace(); } return userList; }
获取角色列表
-
dao
//获取角色列表 public List<Role> getRoleList() throws SQLException;
-
daoImpl
public class RoleDaoImpl implements RoleDao { @Override public List<Role> getRoleList() throws SQLException { Connection conn = BaseDao.getConn(); PreparedStatement pst = null; ResultSet rs = null; ArrayList<Role> roleList = new ArrayList<>(); if (conn != null){ String sql = "select * from smbms_role"; Object[] params = {}; rs = BaseDao.executeQ(conn, pst, rs, sql, params); while (rs.next()){ Role role = new Role(); role.setId(rs.getInt("id")); role.setRoleCode(rs.getString("roleCode")); role.setRoleName(rs.getString("roleName")); roleList.add(role); } BaseDao.close(conn, pst, rs); } return roleList; } }
-
service
//获取角色列表 public List<Role> getRoleList();
-
serviceImpl
public class RoleServiceImpl implements RoleService { private RoleDao roleDao; public RoleServiceImpl(){ roleDao = new RoleDaoImpl(); } @Override public List<Role> getRoleList() { List<Role> roleList = null; try { roleList = roleDao.getRoleList(); return roleList; } catch (SQLException e) { e.printStackTrace(); } return roleList; } }
用户显示列表Servlet
- 获取前端数据
- 为空进行判断
- 获取用户列表
- 获取角色列表
- 获取总数据
- 在request中set属性
@WebServlet("/user/management.do")
public class UserManageServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取前端数据
String queryname = req.getParameter("queryname");//获取用户名
String tempQueryUserRole = req.getParameter("queryUserRole");//获取角色名
String pageIndex = req.getParameter("pageIndex");//获取页数
int queryUserRole = 0;
int pageSize = 3;//默认页面大小为3
int currentPageNum = 1;//默认为第一页
if (queryname == null){
queryname = "";
}
if (tempQueryUserRole != null && !tempQueryUserRole.equals("")){
queryUserRole = Integer.parseInt(tempQueryUserRole);
}
if (pageIndex != null){
currentPageNum = Integer.parseInt(pageIndex);
}
UserService userService = new UserServiceImpl();
//获取总数据
int userCount = userService.getUserCount(queryname, queryUserRole);
PageBean pageBean = new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setPageNum(currentPageNum);
pageBean.setTotalRecord(userCount);
//获取总页数
pageBean.setTotalPage(userCount, pageSize);
//控制页码
int totalPage = pageBean.getTotalPage();
if (currentPageNum < 1){
currentPageNum = 1;
}else if (currentPageNum > totalPage){
currentPageNum = totalPage;
}
//获取用户列表
List<User> userList = userService.getUserList(queryname, queryUserRole, currentPageNum, pageSize);
req.setAttribute("userList", userList);
//获取角色列表
RoleServiceImpl roleService = new RoleServiceImpl();
List<Role> roleList = roleService.getRoleList();
req.setAttribute("roleList", roleList);
req.setAttribute("queryUserRole", queryUserRole);
req.setAttribute("pageBean", pageBean);
req.setAttribute("queryUserName", queryname);
req.getRequestDispatcher("/jsp/userlist.jsp").forward(req, resp);
}
}