原文再续,书接上回。今天我们来实现员工查询的前后端代码。
首先实现我们的后端代码,在com.sunsy.crud.service包下创建EmployeeService类,在里边实现一个查询所有员工的方法,如下(有些关键的方法是啥意思我都写到注释里了):
package com.sunsy.crud.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sunsy.crud.bean.Employee;
import com.sunsy.crud.dao.EmployeeMapper;
@Service
public class EmployeeService {
@Autowired
EmployeeMapper employeeMapper;
/**
* 查询所有信息
* @return
*/
public List<Employee> getAll(){
return employeeMapper.selectByExampleWithDept(null);
}
}
接下来我们在com.sunsy.crud.controller包下创建EmployeeController类,里边调用EmployeeService以及开源的PageHelper插件实现分页查询,并将结果放到model里传给list页面,代码如下:
package com.sunsy.crud.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sunsy.crud.bean.Employee;
import com.sunsy.crud.service.EmployeeService;
@Controller
public class EmployeeController {
@Autowired
EmployeeService employeeService;
/**
* 分页查询所有员工信息
* @return
*/
@RequestMapping("/emps")
public String getEmps(@RequestParam(value="pageNum", defaultValue="1")Integer pageNum, Model model) {
//引入分页插件pagehelper
//在startPage后的第一个查询会变成分页查询
PageHelper.startPage(pageNum, 5);
List<Employee> emps = employeeService.getAll();
//把查询结果放到pageInfo里,这个pagehelper提供的类很好用,封装了各种我们需要的信息,那个5代表连续现实的页数
PageInfo<Employee> page = new PageInfo<Employee>(emps, 5);
//把pageinfo放到model里,这样就会传给界面
model.addAttribute("pageInfo", page);
return "list";
}
}
有一点必须要记得,按PageHelper的帮助文档上所说,如果想要使用它,必须在mybatis的主配置文件,也就是我们的mybatis-config.xml里配置plugin interceptor,完整的mybatis-config.xml配置文件如下