1.首先创建一个实体类,例如员工类Employee.java,命名要规范,要么都是单词,要么都是拼音,命名要统一。
public class Employee { private int id;//员工ID,自增长 private String bh;//员工编号 private String xm;//员工姓名 private String xb;//性别 private String sr;//生日 private String zw;//职务 private String zz;//住址 private String sfzh;//身份证号 private int bmid;//部门ID
2.再写一个controller逻辑层,名字叫做EmployeeController.java的文件,主要是调用业务层的一些方法,还有把数据传送到前台,实现数据的显示。在类的前面加上@Controller的注解,实现注解扫描。
// 员工管理界面,查询所有信息 @RequestMapping("/list")//我的这个名称跟jsp文件中的跳转的名称一致 public String list(Model model) { List<Map<String, Object>> list = employeeDao.getAll();//调用EmployeeDao.java中的方法 model.addAttribute("list", list);//传到前台jsp文件中 return "employee/right";//返回到employee文件中right.jsp文件中 } // 增加员工信息的方法 @RequestMapping("/addd") public String addd(Employee employee) { employeeDao.add(employee);//调用EmployeeDao中的方法 return "redirect:/list";// 重定向 } // 删除员工的信息 @RequestMapping(value = "/employee/delete/{id}", method = RequestMethod.GET) public String delete(@PathVariable(value = "id") Integer id) {//传递参数 employeeDao.delete(id);//调用删除的方法 return "redirect:/list";//redirect是重定向,重新执行某个方法 } // 修改员工的信息 @RequestMapping(value = "/employee/update/{id}", method = RequestMethod.POST) public String update(@PathVariable(value = "id") Integer id, Employee employee) { employeeDao.update(employee, id); return "redirect:/list"; } // 根据员工ID来查询员工的信息 @RequestMapping(value = "/employee/edit/{id}", method = RequestMethod.GET) public String getone(@PathVariable(value = "id") Integer id, Model model) { List<Map<String, Object>> onelist = employeeDao.edit(id); List<Dept> list2 = employeeDao.getAllbm(); List<Role> jsList = employeeDao.getAlljs(); model.addAttribute("list2", list2); model.addAttribute("jsList", jsList); model.addAttribute("onelist", onelist); return "/employee/edit"; }
3.在EmployeeDao.java文件中主要是写一些增删改查的一些方法,在逻辑层调用
// 增加员工的信息 public void add(Employee employee) { // 增加员工的部门ID,员工编号,员工姓名,员工性别,员工职务,员工住址,员工的身份证号等信息 String sql = "insert into task_employee (TASK_DEPT_ID,EM_NO,EM_XM,EM_XB,EM_SR,EM_ZW,EM_ZZ,EM_SFZH) values (?,?,?,?,?,?,?,?)"; jt.update(sql, employee.getBmid(), employee.getBh(), employee.getXm(), employee.getXb(), employee.getSr(), employee.getZw(), employee.getZz(), employee.getSfzh());//跟sql语句中的字段的顺序保持一致 } // 根据员工的ID来删除员工的信息,假删除,修改状态 public void delete(Integer id) { // 根据员工的ID来删除员工信息 String sql = "update task_user set USER_ENABLE = 2 where TASK_EMPLOYEE_ID =?"; jt.update(sql, id);//参数记得写 } // 查询所有的员工信息 public List<Map<String, Object>> getAll() { // 查询员工表中的所有的信息 String sql = "select e.ID, e.TASK_USER_ID,e.TASK_DEPT_ID,e.EM_NO,e.EM_XM,e.EM_XB,e.EM_SR,e.EM_ZW,e.EM_ZZ,e.EM_SFZH,u.TASK_EMPLOYEE_ID,u.USER_ENABLE from task_employee as e ,task_user as u where u.TASK_EMPLOYEE_ID =e.ID and u.USER_ENABLE=1"; List<Map<String, Object>> list = jt.queryForList(sql); return list; } // 根据员工的ID来查询一条信息 public List<Map<String, Object>> edit(Integer id) { // 根据员工的ID查询员工的信息 String sql = "select ID,TASK_DEPT_ID,EM_NO,EM_XM,EM_XB,EM_SR,EM_ZW,EM_ZZ,EM_SFZH from task_employee where ID=?"; List<Map<String, Object>> onelist = jt.queryForList(sql, id); return onelist; } // 修改员工的信息 public void update(Employee employee, Integer id) { // 根据员工的信息来修改员工的信息 String sql = "update task_employee set TASK_DEPT_ID=?,EM_NO=?,EM_XM=?,EM_XB=?,EM_SR=?,EM_ZW=?,EM_ZZ=?,EM_SFZH=? where ID=? "; jt.update(sql, employee.getBmid(), employee.getBh(), employee.getXm(), employee.getXb(), employee.getSr(), employee.getZw(), employee.getZz(), employee.getSfzh(), employee.getId()); }
4.在前台jsp界面显示的时候使用<c:forEach>jstl标签,显示集合中的信息,在jsp界面的开头写一句<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>支持jstl标签的使用。
<c:forEach items="${list}" var="i" varStatus="status"> <tbody> <tr> <td>${status.index+1}</td> <td>${i.TASK_DEPT_ID}</td> <td>${i.EM_NO}</td> <td>${i.EM_XM}</td> <td>${i.EM_XB}</td> <td>${i.EM_SR}</td> <td>${i.EM_ZW}</td> <td>${i.EM_ZZ}</td> <td>${i.EM_SFZH}</td> <td><a href="${pageContext.request.contextPath}/employee/edit/${i.id}" class="tablelink">修改</a> <a href="${pageContext.request.contextPath}/employee/delete/${i.id}" class="tablelink" onClick="delcfm()"> 删除</a></td> </tr> </tbody> </c:forEach>