3、获取角色列表
为了我们职责统一,可以把角色的操作单独放在一个包中,和pojo类对应
-
RoleDao
package com.tr.dao.role; import com.tr.pojo.Role; import java.sql.Connection; import java.sql.SQLException; import java.util.List; /** * @author TRasdzz * @version 1.0 * @since create in 2021/5/12 20:14 */ public interface RoleDao { //获取角色列表 public List<Role> getRoleList(Connection connection) throws SQLException; }
-
RoleDaoImpl
package com.tr.dao.role; import com.tr.dao.BaseDao; import com.tr.pojo.Role; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /** * @author TRasdzz * @version 1.0 * @since create in 2021/5/12 20:53 */ public class RoleDaoImpl implements RoleDao{ //获取角色列表 @Override public List<Role> getRoleList(Connection connection) throws SQLException { PreparedStatement st = null; String sql = "select * from smbms_role"; ResultSet rs = null; List<Role> roleList = new ArrayList<Role>(); if (connection != null){ Object[] params = {}; rs = BaseDao.execute(connection, st, 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.release(connection,st,rs); } return roleList; } }
-
RoleService
package com.tr.service.role; import com.tr.pojo.Role; import java.util.List; /** * @author TRasdzz * @version 1.0 * @since create in 2021/5/13 8:42 */ public interface RoleService { //获取角色列表 public List<Role> getRoleList(); }
-
RoleServiceImpl
package com.tr.service.role; import com.tr.dao.BaseDao; import com.tr.dao.role.RoleDao; import com.tr.dao.role.RoleDaoImpl; import com.tr.pojo.Role; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /** * @author TRasdzz * @version 1.0 * @since create in 2021/5/13 8:44 */ public class RoleServiceImpl implements RoleService { private RoleDao roleDao; public RoleServiceImpl() { roleDao = new RoleDaoImpl(); } @Override public List<Role> getRoleList() { Connection connection = null; List<Role> roleList = new ArrayList<Role>(); try { connection = BaseDao.getConnection(); roleList = roleDao.getRoleList(connection); } catch (SQLException throwables) { throwables.printStackTrace(); } finally { BaseDao.release(connection,null,null); } return roleList; } }
4、用户显示的servlet
- 获取用户前端的数据(查询)
- 判断请求是否需要执行,看参数的值判断
- 为了实现分页,需要计算出当前页和总页数,页面大小等
- 用户列表展示
- 返回前端
//查询用户列表以及角色列表
//重点 难点
public void query(HttpServletRequest req, HttpServletResponse resp) {
//获取数据
String queryUserName = req.getParameter("queryname");
String queryUserRoleTemp = req.getParameter("queryUserRole");
String pageIndexTemp = req.getParameter("pageIndex");
int totalPageCount = 0;
int queryUserRole = 0;
UserServiceImpl userService = new UserServiceImpl();
List<User> userList = new ArrayList<User>();
//第一次走这个请求,一定是第一页,页面大小是固定的;
int pageSize = 5;//可以把这个信息写到配置文件中,方便后器做修改;
int currentPageNo = 1;
if (queryUserName == null) {
queryUserName = "";
}
if (!StringUtils.isNullOrEmpty(queryUserRoleTemp)) {
queryUserRole = Integer.parseInt(queryUserRoleTemp); //给查询赋值!
}
//现在的页码
if (pageIndexTemp != null){
currentPageNo = Integer.parseInt(pageIndexTemp);
}
//获取用户的总数(分页: 上一页 下一页)
int totalCount = userService.getUserCount(queryUserName, queryUserRole);
//总页数支持
PageSupport pageSupport = new PageSupport();
pageSupport.setPageSize(pageSize);//页面显示数量
pageSupport.setCurrentPageNo(currentPageNo);//现在的页码
pageSupport.setTotalCount(totalCount);//总数量
//控制首页和尾页
totalPageCount = pageSupport.getTotalPageCount();//获取总页码
if (currentPageNo < 1 ){
currentPageNo = 1;
}
if (currentPageNo > totalPageCount) {
currentPageNo = totalPageCount;
}
userList = userService.getUserList(queryUserName, queryUserRole, currentPageNo, pageSize);
req.setAttribute("userList", userList);
RoleServiceImpl roleService = new RoleServiceImpl();
List<Role> roleList = roleService.getRoleList();
req.setAttribute("roleList", roleList);
req.setAttribute("totalPageCount",totalPageCount);
req.setAttribute("totalCount",totalCount);
req.setAttribute("currentPageNo",currentPageNo);
req.setAttribute("totalPageCount", totalPageCount);
req.setAttribute("queryUserName",queryUserName);
req.setAttribute("queryUserRole",queryUserRole);
try {
req.getRequestDispatcher("/jsp/userlist.jsp").forward(req,resp);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
最后 附上项目源码地址:gitee
项目后续的功能我没有继续实现基本上就是增删改查的重复书写