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>