四层架构MVC
Controller(接收http请求)
public class EmpController {@Autowiredprivate EmpService empService;/*** 分页查询员工数据* @return*/@GetMappingpublic Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name, Integer gender,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {log.info("分页查询员工数据,参数:{},{},{},{},{},{}", page, pageSize, name, gender, begin, end);PageResult<Emp> pageResult = empService.page(page, pageSize, name, gender, begin, end);return Result.success(pageResult);}
}
Service(业务逻辑处理)
public interface EmpService {PageResult<Emp> page(Integer page, Integer pageSize, String name, Integer gender, LocalDate begin, LocalDate end);
}
@Service
public class EmpServiceimpl implements EmpService {@Autowiredprivate EmpMapper empMapper;/*原始查询*/
// @Override
// public PageResult<Emp> page(Integer page, Integer pageSize) {
// Long total = empMapper.count();
// Integer start = (page - 1) * pageSize;
// List<Emp> list = empMapper.page(start, pageSize);
// return new PageResult<Emp>(total, list);
// }@Overridepublic PageResult<Emp> page(Integer page, Integer pageSize, String name, Integer gender, LocalDate begin, LocalDate end) {PageHelper.startPage(page, pageSize);List<Emp> emplist = empMapper.list(name, gender, begin, end);Page<Emp> p = (Page<Emp>) emplist;return new PageResult<Emp>(p.getTotal(), p.getResult());}
}
Mapper(访问数据库)
@Mapper
public interface EmpMapper {/*** 原始查询*/// /**
// * 查询总记录数
// * @return
// */
// @Select("select count(*) from emp e left join dept d on e.dept_id = d.id")
// public Long count();
//
// /**
// * 分页查询员工数据
// * @param start
// * @param pageSize
// * @return
// */
// @Select("select e.*, d.name as deptName from emp e left join dept d on e.dept_id = d.id" +
// "order by e.update_time desc limit #{start}, #{pageSize}")
// public List<Emp> page(Integer start, Integer pageSize);@Select("select * from emp e left join dept d on e.dept_id = d.id")public Long count();// @Select("select e.*, d.name as deptName from emp e left join dept d on e.dept_id = d.id " +
// "order by e.update_time desc")public List<Emp> list(String name, Integer gender, LocalDate startDate, LocalDate endDate);