EasyUI+JavaWeb奖助学金管理系统[15]-人员管理功能实现

简介: 本文目录1. 本章任务2. 人员分页浏览的实现3. 人员新增功能的实现3. 人员编辑功能的实现4. 人员删除功能的实现5. 本章完整源代码5.1 userManager.html5.2 CoreServlet.java5.3 UserDao.java6. 总结

1. 本章任务

之前已陆续实现了登录、后台管理主页面、项目管理、机构管理功能。


本章来实现下人员管理功能,人员管理功能由学校管理员角色使用,其他学校管理员、班主任、学生均不允许进行人员管理操作。


由于常规的增删改查之前已经讲解的非常详细了,所以本篇主要讲解一些比较重点难点的内容。同时为了方便新手学习,在本篇的最后也会附上人员管理功能的全部相关类代码,便于粘贴使用。我就是这么NICE,无需感谢,哈哈。


2. 人员分页浏览的实现

人员的分页浏览,是有需要注意的地方的。


首先,是人员表关联了机构表,需要从机构表中获取人员对应的机构名称,此时涉及到联表查询。


第二,数据库中存储的人员的角色是英文字符串,但是在界面上显示时需要格式化为对应的中文含义,所以此处涉及到EasyUI表格列的格式化问题。


好的,为了能够在页面上显示机构名称,修改User实体类添加显示字段departName。

/**
 * 用户
 */
public class User {
  private String id;
  private String userName;
  private String loginName;
  private String password;
  private String role;
  private String departId;
  /**
   * 冗余查询字段
   */
  private String departName;
  // 省略get set
}
EasyUI数据表格显示时,直接使用departName字段即可。
    <table id="mainTable" title="人员列表" class="easyui-datagrid" url="CoreServlet?method=getUserPage" pagination="true"
     singleSelect="true" fitColumns="true">
      <thead>
        <tr>
          <th data-options="field:'id',width:50">序号</th>
          <th data-options="field:'userName',width:50">姓名</th>
          <th data-options="field:'loginName',width:50">登录名</th>
          <th data-options="field:'role',width:50" formatter="formatRole">角色</th>
          <th data-options="field:'departName',width:100">所属机构</th>
        </tr>
      </thead>
    </table>
此时由于数据库中存储的角色是英文字符串,需要通过格式化方法转化为中文,即formatRole方法。
    // 格式化类型
    function formatRole(val, row) {
      if (val == "schoolmaster") {
        return "学校管理员";
      } else if (val == "collegemaster") {
        return "学院管理员";
      } else if (val == "classmaster") {
        return "班主任";
      } else {
        return "学生";
      }
    }
最后,数据库操作层要实现联表查询,修改UserDao如下。
  /**
   * 获取数量
   */
  public int getCount() throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select count(id) from user ";
    QueryRunner runner = new QueryRunner();
    Number number = (Number) runner.query(conn, sql, new ScalarHandler());
    int value = number.intValue();
    ConnectionUtils.releaseConnection(conn);
    return value;
  }
  /**
   * 分页查询
   */
  public List<User> getPage(int page, int rows) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select u.*,d.name as departName from user u left join depart d on u.departId=d.id limit ?,?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { (page - 1) * rows, rows };
    List<User> users = runner.query(conn, sql, new BeanListHandler<User>(User.class), params);
    ConnectionUtils.releaseConnection(conn);
    return users;
  }

3. 人员新增功能的实现

人员新增时,有两个关键节点。


第一是人员的角色,需要通过下拉框(easyui-combobox)来实现,下拉框的显示内容和值分别对应角色的中文名称和英文存储值。


第二是人员所属的机构,也是下拉框实现的,但是机构的信息是从数据库中获取的。下拉框的内容和值分别对应机构的id和name。


OK,我们先来设计下新增弹窗,注意两个下拉框:

  <!-- 新增弹窗 -->
  <div id="dialog-add" class="easyui-dialog" title="新增" data-options="iconCls:'icon-ok',closed:'true'" style="width: 600px; height: 400px; padding: 10px">
    <table>
      <tr>
        <td>姓名</td>
        <td><input id="add-userName" class="easyui-textbox" style="width: 200px"></td>
      </tr>
      <tr>
        <td>登录名:</td>
        <td><input id="add-loginName" class="easyui-textbox" style="width: 200px"></td>
      </tr>
      <tr>
        <td>角色:</td>
        <td><select id="add-role" class="easyui-combobox" style="width: 200px;">
            <option value="schoolmaster">学校管理员</option>
            <option value="collegemaster">学院管理员</option>
            <option value="classmaster">班主任</option>
            <option value="student">学生</option>
          </select></td>
      </tr>
      <tr>
        <td>所属机构:</td>
        <td><select id="add-departId" class="easyui-combobox" style="width: 200px;">
          </select></td>
      </tr>
      <tr>
        <td></td>
        <td><a id="btn" onclick="btnAddSubmit()" href="#" class="easyui-linkbutton">保存</a></td>
      </tr>
    </table>
  </div>
然后在页面初始化时,从数据库中获取机构信息,将加载到所属机构的下拉框add-departId中。
    // 初始化
    $(function() {
      loadDeparts();
    });
    // 加载机构
    function loadDeparts() {
      $.ajax({
        url: "CoreServlet?method=getDepartList",
        type: "post",
        dataType: "json",
        data: null,
        success: function(res) {
          console.log(res);
          if (res.code == 0) {
            // 为指定下拉框增加选项
            addItemsForSelect("#add-departId", res.data);
            addItemsForSelect("#edit-departId", res.data);
          } else { //提示错误信息
            alert(res.msg);
          }
        },
      });
    }
    // 为下拉框增加选项
    function addItemsForSelect(id, data) {
      // 清空选项
      $(id).combobox("clear");
      var items = [];
      // 动态添加的选项
      $.each(data, function(i, v) { //遍历返回值
        items.push({
          "value": v.id,
          "text": v.name
        });
      });
      // 加载数据
      $(id).combobox("loadData", items);
      // 设置默认选中值
      $(id).combobox("setValue", items[0].value);
    }
其他的保存就跟之前的项目、机构管理类似了,此处不再详述。需要注意新增用户时,可以将其密码设置为默认123456,用户登录后自行修改即可。
3. 人员编辑功能的实现
需要注意编辑人员时,人员的所属机构同样是从数据库中获取的,所以在上面代码中会有如下代码,即同时为新增弹窗、编辑弹窗的机构下拉框增加机构列表选项。
addItemsForSelect("#add-departId", res.data);
addItemsForSelect("#edit-departId", res.data);

4. 人员删除功能的实现

之前项目管理、机构管理均没有删除功能,主要是担心会删除被引用的基础数据。


人员管理是需要删除功能的,毕竟人员录入错误的可能性还是比较大的。PS:在实际的项目中,对业务数据的删除大多采用软删除,即通过一个数据库字段描述数据是否被业务删除,此处我们就简单点,直接将其从数据库中删除。


由于删除操作风险性比较高,为了避免不小心点到删除按钮导致的误删除,我们在删除之前应该弹窗提示当前用户是否确认删除。

    // 删除
    function btnRemoveClick() {
      // 获取当前选中行
      var row = $('#mainTable').datagrid('getSelected');
      if (row == null) {
        alert("请选择要删除的行");
        return;
      }
      // 提示用户确认
      $.messager.confirm('确认?', '您确认删除吗?', function(r) {
        if (r) { //用户选择确认
          $.ajax({
            url: "CoreServlet?method=removeUser",
            type: "post",
            dataType: "json",
            data: {
              id: row.id
            },
            success: function(res) {
              console.log(res);
              if (res.code == 0) { //成功则刷新表格
                $('#mainTable').datagrid('reload');
              } else { //提示错误信息
                alert(res.msg);
              }
            },
          });
        }
      });
    }
后台添加对应删除方法即可:
    // 删除用户
    else if (method.equals("removeUser")) {
      UserDao userDao = new UserDao();
      userDao.deleteById(request.getParameter("id"));
      result.setCode(0);
      result.setMsg("操作成功");
    }
5. 本章完整源代码
为了方便大家学习,贴上本章完整源码。
5.1 userManager.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>用户管理</title>
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="css/main.css">
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>
  </head>
  <body>
    <div class="tool-box">
      <a id="btn" onclick="btnAddClick()" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add'">新增</a> <a
       id="btn" onclick="btnEditClick()" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit'">编辑</a> <a
       id="btn" onclick="btnRemoveClick()" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove'">删除</a>
    </div>
    <table id="mainTable" title="人员列表" class="easyui-datagrid" url="CoreServlet?method=getUserPage" pagination="true"
     singleSelect="true" fitColumns="true">
      <thead>
        <tr>
          <th data-options="field:'id',width:50">序号</th>
          <th data-options="field:'userName',width:50">姓名</th>
          <th data-options="field:'loginName',width:50">登录名</th>
          <th data-options="field:'role',width:50" formatter="formatRole">角色</th>
          <th data-options="field:'departName',width:100">所属机构</th>
        </tr>
      </thead>
    </table>
    <!-- 新增弹窗 -->
    <div id="dialog-add" class="easyui-dialog" title="新增" data-options="iconCls:'icon-ok',closed:'true'" style="width: 600px; height: 400px; padding: 10px">
      <table>
        <tr>
          <td>姓名</td>
          <td><input id="add-userName" class="easyui-textbox" style="width: 200px"></td>
        </tr>
        <tr>
          <td>登录名:</td>
          <td><input id="add-loginName" class="easyui-textbox" style="width: 200px"></td>
        </tr>
        <tr>
          <td>角色:</td>
          <td><select id="add-role" class="easyui-combobox" style="width: 200px;">
              <option value="schoolmaster">学校管理员</option>
              <option value="collegemaster">学院管理员</option>
              <option value="classmaster">班主任</option>
              <option value="student">学生</option>
            </select></td>
        </tr>
        <tr>
          <td>所属机构:</td>
          <td><select id="add-departId" class="easyui-combobox" style="width: 200px;">
            </select></td>
        </tr>
        <tr>
          <td></td>
          <td><a id="btn" onclick="btnAddSubmit()" href="#" class="easyui-linkbutton">保存</a></td>
        </tr>
      </table>
    </div>
    <!-- 编辑弹窗 -->
    <div id="dialog-edit" class="easyui-dialog" title="编辑" data-options="iconCls:'icon-ok',closed:'true'" style="width: 600px; height: 400px; padding: 10px">
      <table>
        <tr>
          <td>编号:</td>
          <td><input id="edit-id" class="easyui-textbox" style="width: 200px" disabled></td>
        </tr>
        <tr>
          <td>姓名</td>
          <td><input id="edit-userName" class="easyui-textbox" style="width: 200px"></td>
        </tr>
        <tr>
          <td>登录名:</td>
          <td><input id="edit-loginName" class="easyui-textbox" style="width: 200px"></td>
        </tr>
        <tr>
          <td>角色:</td>
          <td><select id="edit-role" class="easyui-combobox" style="width: 200px;">
              <option value="schoolmaster">学校管理员</option>
              <option value="collegemaster">学院管理员</option>
              <option value="classmaster">班主任</option>
              <option value="student">学生</option>
            </select></td>
        </tr>
        <tr>
          <td>所属机构:</td>
          <td><select id="edit-departId" class="easyui-combobox" style="width: 200px;">
            </select></td>
        </tr>
        <tr>
          <td></td>
          <td><a id="btn" onclick="btnEditSubmit()" href="#" class="easyui-linkbutton">保存</a></td>
        </tr>
      </table>
    </div>
  </body>
  <script>
    // 初始化
    $(function() {
      loadDeparts();
    });
    // 加载机构
    function loadDeparts() {
      $.ajax({
        url: "CoreServlet?method=getDepartList",
        type: "post",
        dataType: "json",
        data: null,
        success: function(res) {
          console.log(res);
          if (res.code == 0) {
            // 为指定下拉框增加选项
            addItemsForSelect("#add-departId", res.data);
            addItemsForSelect("#edit-departId", res.data);
          } else { //提示错误信息
            alert(res.msg);
          }
        },
      });
    }
    // 为下拉框增加选项
    function addItemsForSelect(id, data) {
      // 清空选项
      $(id).combobox("clear");
      var items = [];
      // 动态添加的选项
      $.each(data, function(i, v) { //遍历返回值
        items.push({
          "value": v.id,
          "text": v.name
        });
      });
      // 加载数据
      $(id).combobox("loadData", items);
      // 设置默认选中值
      $(id).combobox("setValue", items[0].value);
    }
    // 新增点击
    function btnAddClick() {
      $('#dialog-add').dialog('open');
    }
    // 新增保存
    function btnAddSubmit() {
      var param = {
        userName: $("#add-userName").val(),
        loginName: $("#add-loginName").val(),
        role: $("#add-role").combobox("getValue"), //获取选中项的值
        departId: $("#add-departId").combobox("getValue"), //获取选中项的值
      }
      $.ajax({
        url: "CoreServlet?method=addUser",
        type: "post",
        dataType: "json",
        data: param,
        success: function(res) {
          console.log(res);
          if (res.code == 0) { //成功则刷新表格
            $('#mainTable').datagrid('reload');
            $('#dialog-add').dialog('close');
          } else { //提示错误信息
            alert(res.msg);
          }
        },
      });
    }
    // 编辑点击
    function btnEditClick() {
      // 获取当前选中行
      var row = $('#mainTable').datagrid('getSelected');
      if (row == null) {
        alert("请选择要修改的行");
        return;
      }
      // 将选中行信息设置到弹窗 
      $("#edit-id").textbox("setValue", row.id);
      $("#edit-userName").textbox("setValue", row.userName);
      $("#edit-loginName").textbox("setValue", row.loginName);
      $("#edit-role").combobox("setValue", row.role);
      $("#edit-departId").combobox("setValue", row.departId);
      $('#dialog-edit').dialog('open');
    }
    // 编辑保存
    function btnEditSubmit() {
      var param = {
        id: $("#edit-id").val(),
        userName: $("#edit-userName").val(),
        loginName: $("#edit-loginName").val(),
        role: $("#edit-role").combobox("getValue"),
        departId: $("#edit-departId").combobox("getValue"),
      }
      $.ajax({
        url: "CoreServlet?method=editUser",
        type: "post",
        dataType: "json",
        data: param,
        success: function(res) {
          console.log(res);
          if (res.code == 0) { //成功则刷新表格
            $('#mainTable').datagrid('reload');
            $('#dialog-edit').dialog('close');
          } else { //提示错误信息
            alert(res.msg);
          }
        },
      });
    }
    // 格式化类型
    function formatRole(val, row) {
      if (val == "schoolmaster") {
        return "学校管理员";
      } else if (val == "collegemaster") {
        return "学院管理员";
      } else if (val == "classmaster") {
        return "班主任";
      } else {
        return "学生";
      }
    }
    // 删除
    function btnRemoveClick() {
      // 获取当前选中行
      var row = $('#mainTable').datagrid('getSelected');
      if (row == null) {
        alert("请选择要删除的行");
        return;
      }
      // 提示用户确认
      $.messager.confirm('确认?', '您确认删除吗?', function(r) {
        if (r) { //用户选择确认
          $.ajax({
            url: "CoreServlet?method=removeUser",
            type: "post",
            dataType: "json",
            data: {
              id: row.id
            },
            success: function(res) {
              console.log(res);
              if (res.code == 0) { //成功则刷新表格
                $('#mainTable').datagrid('reload');
              } else { //提示错误信息
                alert(res.msg);
              }
            },
          });
        }
      });
    }
  </script>
</html>
5.2 CoreServlet.java
@WebServlet("/CoreServlet")
public class CoreServlet extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 设置输入输出格式、编码
    response.setContentType("text/html");
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    PrintWriter out = response.getWriter(); // 获取writer方法,用于将数据返回给ajax
    // 获取用户在网页输入的用户名和密码
    Result result = null;
    try {
      result = handleRequest(request);
    } catch (Exception ex) {
      result = new Result();
      result.setCode(9999);
      result.setMsg(ex.getMessage());
      System.err.println(ex.getMessage());
    } finally {
      out.write(JSON.toJSONString(result));
      out.flush();
      out.close();
    }
  }
  /**
   * 具体处理请求
   */
  public Result handleRequest(HttpServletRequest request) throws Exception {
    Result result = new Result();
    String method = request.getParameter("method");
    // 如果未登录,且不是请求的登录方法,直接抛出异常
    User loginUser = (User) request.getSession().getAttribute("loginUser");
    if (loginUser == null && !method.equals("login")) {
      throw new Exception("未登录!");
    }
    // 请求页码、每页显示行数、总数
    int page = 1, rows = 10, total = 0;
    if (method.contains("Page") == true) {// 当前为分页请求
      // 获取
      String inputPage = request.getParameter("page");
      String inputRows = request.getParameter("rows");
      page = (inputPage == null) ? 1 : Integer.parseInt(inputPage);
      rows = (inputRows == null) ? 10 : Integer.parseInt(inputRows);
    }
    // 登录处理
    if (method.equals("login")) {
      String loginName = request.getParameter("loginName");
      String password = request.getParameter("password");
      UserDao userDao = new UserDao();
      List<User> users = userDao.getUsersByLoginNameAndPassword(loginName, password);
      if (users != null && users.size() == 1) {// 登录成功
        result.setCode(0);
        result.setMsg("操作成功");
        result.setData(users.get(0));
        request.getSession().setAttribute("loginUser", users.get(0));
      } else {// 登录失败
        result.setCode(9999);
        result.setMsg("操作失败");
      }
    }
    // 查询登录用户拥有的菜单
    else if (method.equals("getMenusOfUser")) {
      MenuDao menuDao = new MenuDao();
      result.setData(menuDao.getMenusOfUser(loginUser));// 返回数据为对应菜单
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 获取项目分页
    else if (method.equals("getProjectPage")) {
      ProjectDao projectDao = new ProjectDao();
      total = projectDao.getCount();
      result.setTotal(total);
      result.setRows(projectDao.getPage(page, rows));
    }
    // 新增项目保存
    else if (method.equals("addProject")) {
      ProjectDao projectDao = new ProjectDao();
      Project project = new Project();
      project.setType(request.getParameter("type"));
      project.setName(request.getParameter("name"));
      project.setAbout(request.getParameter("about"));
      projectDao.insert(project);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 编辑项目保存
    else if (method.equals("editProject")) {
      ProjectDao projectDao = new ProjectDao();
      Project project = new Project();
      project.setId(request.getParameter("id"));
      project.setType(request.getParameter("type"));
      project.setName(request.getParameter("name"));
      project.setAbout(request.getParameter("about"));
      projectDao.update(project);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 获取机构列表
    else if (method.equals("getDepartList")) {
      DepartDao departDao = new DepartDao();
      result.setCode(0);
      result.setData(departDao.getAll());
    }
    // 获取机构分页
    else if (method.equals("getDepartPage")) {
      DepartDao departDao = new DepartDao();
      total = departDao.getCount();
      result.setTotal(total);
      result.setRows(departDao.getPage(page, rows));
    }
    // 新增机构保存
    else if (method.equals("addDepart")) {
      DepartDao departDao = new DepartDao();
      Depart depart = new Depart();
      depart.setType(request.getParameter("type"));
      depart.setName(request.getParameter("name"));
      depart.setParentId(request.getParameter("parentId"));
      departDao.insert(depart);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 编辑机构保存
    else if (method.equals("editDepart")) {
      DepartDao departDao = new DepartDao();
      Depart depart = new Depart();
      depart.setId(request.getParameter("id"));
      depart.setType(request.getParameter("type"));
      depart.setName(request.getParameter("name"));
      depart.setParentId(request.getParameter("parentId"));
      departDao.update(depart);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 获取人员分页
    else if (method.equals("getUserPage")) {
      UserDao userDao = new UserDao();
      total = userDao.getCount();
      result.setTotal(total);
      result.setRows(userDao.getPage(page, rows));
    }
    // 新增人员保存
    else if (method.equals("addUser")) {
      UserDao userDao = new UserDao();
      User user = new User();
      user.setUserName(request.getParameter("userName"));
      user.setLoginName(request.getParameter("loginName"));
      user.setRole(request.getParameter("role"));
      user.setDepartId(request.getParameter("departId"));
      user.setPassword("123456");
      userDao.insert(user);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 编辑人员保存
    else if (method.equals("editUser")) {
      UserDao userDao = new UserDao();
      User user = new User();
      user.setId(request.getParameter("id"));
      user.setUserName(request.getParameter("userName"));
      user.setLoginName(request.getParameter("loginName"));
      user.setRole(request.getParameter("role"));
      user.setDepartId(request.getParameter("departId"));
      userDao.update(user);
      result.setCode(0);
      result.setMsg("操作成功");
    }
    // 删除用户
    else if (method.equals("removeUser")) {
      UserDao userDao = new UserDao();
      userDao.deleteById(request.getParameter("id"));
      result.setCode(0);
      result.setMsg("操作成功");
    }
    return result;
  }
}
5.3 UserDao.java
/**
 * 用户数据访问类
 */
public class UserDao {
  /**
   * 通过登录名、密码获取用户
   */
  public List<User> getUsersByLoginNameAndPassword(String loginName, String password) throws SQLException {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select * from user where loginName=? and password=?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { loginName, password };
    List<User> users = runner.query(conn, sql, new BeanListHandler<User>(User.class), params);
    ConnectionUtils.releaseConnection(conn);
    return users;
  }
  /**
   * 新增
   */
  public void insert(User user) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "insert into user(userName,loginName,password,role,departId)values(?,?,?,?,?)";
    Object[] params = { user.getUserName(), user.getLoginName(), user.getPassword(), user.getRole(), user.getDepartId() };
    QueryRunner runner = new QueryRunner();
    runner.update(conn, sql, params);
    ConnectionUtils.releaseConnection(conn);
  }
  /**
   * 移除
   */
  public void deleteById(String id) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "delete from user where id =?";
    Object[] params = { id };
    QueryRunner runner = new QueryRunner();
    runner.update(conn, sql, params);
    ConnectionUtils.releaseConnection(conn);
  }
  /**
   * 更新
   */
  public void update(User user) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "update user set userName=?,loginName=?,password=?,role=?,departId=? where id =?";
    Object[] params = { user.getUserName(), user.getLoginName(), user.getPassword(), user.getRole(), user.getDepartId(), user.getId() };
    QueryRunner runner = new QueryRunner();
    runner.update(conn, sql, params);
    ConnectionUtils.releaseConnection(conn);
  }
  /**
   * 获取一个
   */
  public User getById(String id) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select * from user where id =?";
    Object[] params = { id };
    QueryRunner runner = new QueryRunner();
    User user = (User) runner.query(conn, sql, new BeanHandler<User>(User.class), params);
    ConnectionUtils.releaseConnection(conn);
    return user;
  }
  /**
   * 获取全部
   */
  public List<User> getAll() throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select * from user ";
    QueryRunner runner = new QueryRunner();
    List<User> users = runner.query(conn, sql, new BeanListHandler<User>(User.class));
    ConnectionUtils.releaseConnection(conn);
    return users;
  }
  /**
   * 获取数量
   */
  public int getCount() throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select count(id) from user ";
    QueryRunner runner = new QueryRunner();
    Number number = (Number) runner.query(conn, sql, new ScalarHandler());
    int value = number.intValue();
    ConnectionUtils.releaseConnection(conn);
    return value;
  }
  /**
   * 分页查询
   */
  public List<User> getPage(int page, int rows) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select u.*,d.name as departName from user u left join depart d on u.departId=d.id limit ?,?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { (page - 1) * rows, rows };
    List<User> users = runner.query(conn, sql, new BeanListHandler<User>(User.class), params);
    ConnectionUtils.releaseConnection(conn);
    return users;
  }
}
6. 总结
万变不离其宗,都是套路。
界面写的多了,自然就知道如何应对新功能。
稳得很。
相关文章
|
安全 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
本文目录 1. 总结 1.1 管理员新增奖助学金项目 1.2 学生发起申请 1.3 班主任审批 1.4 学院管理员审批 1.5 学校管理员审批 1.6 学生查看申请结果 2. 展望
143 0
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
|
前端开发
EasyUI+JavaWeb奖助学金管理系统[19]-奖助学金审批功能开发
本文目录 1. 本章任务 2. 查看当前待审批的申请 3. 审批功能的开发 4. 总结
175 0
|
存储 数据库
EasyUI+JavaWeb奖助学金管理系统[18]-奖助学金申请功能开发
本文目录 1. 本章任务 2. 数据库表结构分析 3. 学生查看申请记录功能开发 4. 学生发起申请功能开发 5. 总结
243 0
|
项目管理 数据库 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[17]-问题反馈功能开发
本文目录 1. 本章任务 2. 添加菜单 3. 学生问题反馈开发 4. 管理员问题答复功能开发 5. 总结
154 0
|
项目管理 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[16]-权限管理功能的开发
本文目录 1. 本章任务 2. 页面布局 3. 加载角色对应的菜单 4. 提交角色菜单信息 5. 小结
131 0
EasyUI+JavaWeb奖助学金管理系统[16]-权限管理功能的开发
|
前端开发
EasyUI+JavaWeb奖助学金管理系统[14]-机构新增、编辑、删除的实现
本文目录 1. 本章任务 2. 新增功能的实现 2.1 添加新增弹窗 2.2 页面初始化时加载上级机构列表 2.3 后端提供获取机构列表方法 2.4 点击保存后将内容提交 2.5 后端处理新增保存请求 2.6 测试 3. 编辑功能的实现 4. 删除功能的实现 5. 总结
135 0
EasyUI+JavaWeb奖助学金管理系统[14]-机构新增、编辑、删除的实现