- package com.itheima.pojo;
-
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
-
- import java.util.List;
-
- //分页查询结果封装类
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- public class PageBean {
- private Long total; //总记录数
- private List rows; //数据列表
- }
- package com.itheima.controller;
-
- import com.itheima.pojo.PageBean;
- import com.itheima.pojo.Result;
- import com.itheima.service.EmpService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.format.annotation.DateTimeFormat;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.time.LocalDate;
-
- /**
- * 员工管理Controller
- */
- //开启日志
- @Slf4j
- @RestController
- public class EmpController {
- @Autowired
- private EmpService empService;
-
- @GetMapping("/emps")
- // 能够拿到前端传递过来的参数
- public Result page(@RequestParam(defaultValue = "1") Integer page,
- @RequestParam(defaultValue = "10") Integer pageSize,
- String name, Short gender,
- @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
- @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
- // 设置默认值
- // if(page==null) page=1;
- // if(pageSize==null) pageSize=10;
- log.info("分页查询参数,参数:{},{},{},{}", page, pageSize, name, gender, begin, end);
- PageBean pageBean = empService.page(page, pageSize);
- // ,name, gender, begin, end
- return Result.success(pageBean);
- }
- }
- package com.itheima.service;
-
- import com.itheima.pojo.PageBean;
-
- /**
- * 员工管理
- */
- public interface EmpService {
- // 分页查询
- PageBean page(Integer page, Integer pageSize);
- // , String name, Short gender, LocalDate begin, LocalDate end
- }
- package com.itheima.service.impl;
-
- import com.itheima.mapper.EmpMapper;
- import com.itheima.pojo.Emp;
- import com.itheima.pojo.PageBean;
- import com.itheima.service.EmpService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import java.util.List;
-
- @Service
- public class EmpServiceImpl implements EmpService {
- @Autowired
- private EmpMapper empMapper;
-
- @Override
- public PageBean page(Integer page, Integer pageSize) {
- // 获取总记录数
- Long count = empMapper.count();
- // 分页查询结果列表
- // 起始索引计算
- Integer startIndex = (page - 1) * pageSize;
- List
empList = empMapper.page(startIndex, pageSize); - // 封装PageBean对象
- PageBean pageBean = new PageBean(count, empList);
-
- return pageBean;
- }
- // @Override
- // public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {
- 1.设置分页参数
- // PageHelper.startPage(page, pageSize);
- 2.执行查询
- // List
empList = empMapper.list(name, gender, begin, end); - 将empList强转为Page类型
- Page
是一个分页对象,包含了总记录数和分页后的查询结果。 - // Page
p=(Page) empList; - 封装PageBean对象
- // PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
- //
- // return pageBean;
- // }
- }
- package com.itheima.mapper;
-
- import com.itheima.pojo.Emp;
- import org.apache.ibatis.annotations.Mapper;
- import org.apache.ibatis.annotations.Select;
-
- import java.util.List;
-
- /**
- * 员工管理
- */
- @Mapper
- public interface EmpMapper {
- // 查询总记录数
- @Select("select count(*) from emp")
- public Long count();
- //分页查询获取列表数据
- @Select("select * from emp limit #{start},#{pageSize}")
- public List
page(Integer start,Integer pageSize); - // 员工信息查询
- // @Select("select * from emp")
- // public List
list(); - // String name, Short gender, LocalDate begin, LocalDate end
- }


- #驱动类名称
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- #数据库连接的url
- spring.datasource.url=jdbc:mysql://localhost:3306/tlias
- #连接数据库的用户名
- spring.datasource.username=root
- #连接数据库的密码
- spring.datasource.password=123456
-
- #配置mybatis的日志, 指定输出到控制台
- mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
- #开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
- mybatis.configuration.map-underscore-to-camel-case=true
-
说明:分页插件提示效率。按条件查询
- <dependency>
- <groupId>com.github.pagehelpergroupId>
- <artifactId>pagehelper-spring-boot-starterartifactId>
- <version>1.4.2version>
- dependency>
- package com.itheima.pojo;
-
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
-
- import java.util.List;
-
- //分页查询结果封装类
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- public class PageBean {
- private Long total; //总记录数
- private List rows; //数据列表
- }
- package com.itheima.controller;
-
- import com.itheima.pojo.PageBean;
- import com.itheima.pojo.Result;
- import com.itheima.service.EmpService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.format.annotation.DateTimeFormat;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.time.LocalDate;
-
- /**
- * 员工管理Controller
- */
- //开启日志
- @Slf4j
- @RestController
- public class EmpController {
- @Autowired
- private EmpService empService;
-
- @GetMapping("/emps")
- // 能够拿到前端传递过来的参数
- public Result page(@RequestParam(defaultValue = "1") Integer page,
- @RequestParam(defaultValue = "10") Integer pageSize,
- String name, Short gender,
- @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
- @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
- // 设置默认值
- // if(page==null) page=1;
- // if(pageSize==null) pageSize=10;
- log.info("分页查询参数,参数:{},{},{},{}", page, pageSize, name, gender, begin, end);
- PageBean pageBean = empService.page(page, pageSize,name, gender, begin, end);
- //
- return Result.success(pageBean);
- }
- }
- package com.itheima.service;
-
- import com.itheima.pojo.PageBean;
-
- import java.time.LocalDate;
-
- /**
- * 员工管理
- */
- public interface EmpService {
- // 分页查询
- PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
- //
- }
- package com.itheima.service.impl;
-
- import com.github.pagehelper.Page;
- import com.github.pagehelper.PageHelper;
- import com.itheima.mapper.EmpMapper;
- import com.itheima.pojo.Emp;
- import com.itheima.pojo.PageBean;
- import com.itheima.service.EmpService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import java.time.LocalDate;
- import java.util.List;
-
- @Service
- public class EmpServiceImpl implements EmpService {
- @Autowired
- private EmpMapper empMapper;
-
- // @Override
- // public PageBean page(Integer page, Integer pageSize) {
- 获取总记录数
- // Long count = empMapper.count();
- 分页查询结果列表
- 起始索引计算
- // Integer startIndex = (page - 1) * pageSize;
- // List
empList = empMapper.page(startIndex, pageSize); - 封装PageBean对象
- // PageBean pageBean = new PageBean(count, empList);
- //
- // return pageBean;
- // }
- @Override
- public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {
- //
- // 1.设置分页参数
- PageHelper.startPage(page, pageSize);
- // 2.执行查询
- List
empList = empMapper.list(name, gender, begin, end); - //
- // 将empList强转为Page类型
- // Page
是一个分页对象,包含了总记录数和分页后的查询结果。 - Page
p=(Page) empList; - // 封装PageBean对象
- PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
-
- return pageBean;
- }
- }
- package com.itheima.mapper;
-
- import com.itheima.pojo.Emp;
- import org.apache.ibatis.annotations.Mapper;
- import org.apache.ibatis.annotations.Select;
-
- import java.time.LocalDate;
- import java.util.List;
-
- /**
- * 员工管理
- */
- @Mapper
- public interface EmpMapper {
- // 查询总记录数
- // @Select("select count(*) from emp")
- // public Long count();
- //分页查询获取列表数据
- // @Select("select * from emp limit #{start},#{pageSize}")
- // public List
page(Integer start,Integer pageSize); - // 员工信息查询
- @Select("select * from emp")
- public List
list(String name, Short gender, LocalDate begin, LocalDate end); - //
- }

