mybatis plus分页插件_SpringBoot,MyBatis及Plus分页,工程代码
【环境说明】:开发工具(idea),JDK1.8,spring-boot2.1.14.RELEASE,mybatis-plus3.4.1【实现功能】:1、MyBatis 分页插件:PageHelper2、MyBatis-Plus分页插件:com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor【工程源码】1、项目对象模型(p
·
【环境说明】:
开发工具(idea),JDK1.8,spring-boot2.1.14.RELEASE,mybatis-plus3.4.1
【实现功能】:
1、MyBatis 分页插件:PageHelper
2、MyBatis-Plus分页插件:com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
【工程源码】
1、项目对象模型(pom.xml)
org.springframework.boot spring-boot-starter-parent 2.1.14.RELEASEorg.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-aop mysql mysql-connector-java runtimecom.alibaba druid-spring-boot-starter 1.1.22com.baomidou mybatis-plus-boot-starter 3.4.1com.github.pagehelper pagehelper-spring-boot-starter 1.2.13org.projectlombok lombok truesrc/main/java**/*.class**/*.xml
2、配置文件(application.yml)
server: port: 9080 tomcat: uri-encoding: utf-8spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8 username: root password: root type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 8 min-idle: 1 max-active: 20 max-wait: 60000 time-between-eviction-runsMillis: 60000 min-evictable-idle-timeMillis: 300000 validation-query: select 'x' FROM DUAL test-on-borrow: false test-on-return: false max-open-prepared-statements: 20 max-pool-prepared-statement-per-connection-size: 20 filters: stat connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 initialization-mode: alwaysmybatis-plus: # XML路径 mapper-locations: classpath:**/mapper/**/*.xml typeAliasesPackage: com.what21.demo.pojo.po # 配置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 如果查询结果中包含空值的列,则MyBatis在映射的时候,不会映射这个字段 call-setters-on-nulls: true # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射 map-underscore-to-camel-case: true # 是否开启二级缓存 默认为true cacheEnabled: false # 配置默认值(可以不设置) global-config: db-config: # 数据库类型 db-type: MYSQL # 主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; id-type: auto # 字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断" field-strategy: NOT_EMPTY logic-delete-value: 1 logic-not-delete-value: 0logging: level: root: info
3、其它源文件
package com.what21.demo;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.transaction.annotation.EnableTransactionManagement;@EnableTransactionManagement@SpringBootApplication@MapperScan(basePackages ={ "com.what21.demo.mapper"})public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class); }}
package com.what21.demo.configure;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.DispatcherServlet;@Configurationpublic class CommonConfigure { /** * DispatcherServlet配置==>映射前缀以/demo开头 * * @param dispatcherServlet * @return */ @Bean public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) { return new ServletRegistrationBean(dispatcherServlet, "/demo/*"); } /** * mybatis-plus新的分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); // 分页插件 mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return mybatisPlusInterceptor; }}
package com.what21.demo.common;import lombok.Data;import java.io.Serializable;@Datapublic final class ResponseData implements Serializable { private int code; private String message; private T data; public static ResponseData createBySuccess() { ResponseData responseData = new ResponseData(); responseData.setCode(1000); return responseData; } public static ResponseData createBySuccess(T d) { ResponseData responseData = new ResponseData(); responseData.setCode(1000); responseData.setData(d); return responseData; } public static ResponseData createByError() { ResponseData responseData = new ResponseData(); responseData.setCode(1001); responseData.setMessage("发生错误"); return responseData; } public static ResponseData createByError(int code, String message) { ResponseData responseData = new ResponseData(); responseData.setCode(code); responseData.setMessage(message); return responseData; }}
package com.what21.demo.model;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import lombok.Data;import java.io.Serializable;import java.time.LocalDateTime;@com.baomidou.mybatisplus.annotation.TableName("health_sys_role")@Datapublic class Role implements Serializable { // 主键,主动增长ID @TableId(value = "role_id", type = IdType.AUTO) private Integer roleId; // 角色名称 private String roleName; // 角色编号 private String roleCode; // 角色类型 private String roleType; // 角色描述 private String roleDesc; // 创建时间 private LocalDateTime createTime; // 更新时间 private LocalDateTime updateTime; // 【删除标识(0-正常,1-删除)】 private Integer delFlag; // 角色分类 private String roleClassify; // 是否预定义:0--正常 1—预定义 private Integer predefine; // 角色创建人ID private String createUserId; // 角色创建人名称 private String createUserName; // 排序号 private Integer sorted;}
package com.what21.demo.model.param;import lombok.Data;@Datapublic class RoleListParam {}
package com.what21.demo.model.param;import lombok.Data;@Datapublic class RoleGetParam { private Integer id;}
package com.what21.demo.model.param;public class RolePageParam { }
package com.what21.demo.controller;import com.what21.demo.common.ResponseData;import com.what21.demo.model.param.RoleGetParam;import com.what21.demo.model.param.RoleListParam;import com.what21.demo.model.param.RolePageParam;import com.what21.demo.service.IRoleService;import lombok.Data;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;@RequestMapping("/role")@RestController@Slf4jpublic class RoleController { @Autowired IRoleService roleService; @RequestMapping(value = "/list", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseData list(HttpServletRequest request, @RequestBody RoleListParam param) { log.debug("list() start"); ResponseData responseData = null; try { responseData = roleService.listRoles(param); } catch (RuntimeException e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } catch (Exception e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } log.debug("response=" + responseData); log.debug("list() end"); return responseData; } @RequestMapping(value = "/list2", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseData list2(HttpServletRequest request, @RequestBody RoleListParam param) { log.debug("list2() start"); ResponseData responseData = null; try { responseData = roleService.listRoles2(param); } catch (RuntimeException e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } catch (Exception e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } log.debug("response=" + responseData); log.debug("list2() end"); return responseData; } @RequestMapping(value = "/get", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseData get(HttpServletRequest request, @RequestBody RoleGetParam param) { log.debug("get() start"); ResponseData responseData = null; try { responseData = roleService.getRole(param); } catch (RuntimeException e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } catch (Exception e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } log.debug("response=" + responseData); log.debug("get() end"); return responseData; } @RequestMapping(value = "/page", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseData page(HttpServletRequest request, @RequestBody RolePageParam param) { log.debug("page() start"); ResponseData responseData = null; try { responseData = roleService.pageRoles(param); } catch (RuntimeException e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } catch (Exception e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } log.debug("response=" + responseData); log.debug("page() end"); return responseData; } @RequestMapping(value = "/page2", method = {RequestMethod.GET, RequestMethod.POST}) public ResponseData page2(HttpServletRequest request, @RequestBody RolePageParam param) { log.debug("page2() start"); ResponseData responseData = null; try { responseData = roleService.pageRoles2(param); } catch (RuntimeException e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } catch (Exception e) { e.printStackTrace(); responseData = ResponseData.createByError(1001, e.getMessage()); } log.debug("response=" + responseData); log.debug("page2() end"); return responseData; }}
package com.what21.demo.service;import com.what21.demo.common.ResponseData;import com.what21.demo.model.Role;import com.what21.demo.model.param.RoleGetParam;import com.what21.demo.model.param.RoleListParam;import com.what21.demo.model.param.RolePageParam;import java.util.List;public interface IRoleService { /** * 使用MyBatis-Plus查询 * * @param param * @return */ public ResponseData listRoles(RoleListParam param); /** * 使用MyBatis查询 * * @param param * @return */ public ResponseData listRoles2(RoleListParam param); /** * @param param * @return */ public ResponseData getRole(RoleGetParam param); /** * 使用MyBatis-Plus分页查询 * * @param param * @return */ public ResponseData pageRoles(RolePageParam param); /** * 使用MyBatis分页查询 * * @param param * @return */ public ResponseData pageRoles2(RolePageParam param);}
package com.what21.demo.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import com.what21.demo.common.ResponseData;import com.what21.demo.mapper.RoleMapper;import com.what21.demo.model.Role;import com.what21.demo.model.param.RoleGetParam;import com.what21.demo.model.param.RoleListParam;import com.what21.demo.model.param.RolePageParam;import com.what21.demo.service.IRoleService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import javax.management.relation.RoleList;import java.util.HashMap;import java.util.List;import java.util.Map;@Service("roleService")public class RoleServiceImpl extends ServiceImpl implements IRoleService { @Autowired RoleMapper roleMapper; @Override public ResponseData listRoles(RoleListParam param) { QueryWrapper queryWrapper = new QueryWrapper(); // 数据库列名 queryWrapper.eq("del_flag", 0); List roleList = super.baseMapper.selectList(queryWrapper); return ResponseData.createBySuccess(roleList); } @Override public ResponseData listRoles2(RoleListParam param) { Map paramsMap = new HashMap(); paramsMap.put("delFlag", 0); List roleList = this.roleMapper.queryList(paramsMap); return ResponseData.createBySuccess(roleList); } @Override public ResponseData getRole(RoleGetParam param) { QueryWrapper queryWrapper = new QueryWrapper(); // 数据库列名 queryWrapper.eq("del_flag", 0); queryWrapper.eq("role_id", param.getId()); Role role = super.baseMapper.selectOne(queryWrapper); return ResponseData.createBySuccess(role); } @Override public ResponseData pageRoles(RolePageParam param) { int pageNum = 1; // 当前第几页 int pageSize = 10; // 每页大小 Page page = new Page(pageNum, pageSize); QueryWrapper queryWrapper = new QueryWrapper(); // 数据库列名 queryWrapper.eq("del_flag", 0); Page rolePage = super.baseMapper.selectPage(page, queryWrapper); return ResponseData.createBySuccess(rolePage); } @Override public ResponseData pageRoles2(RolePageParam param) { int pageNum = 1; // 当前第几页 int pageSize = 10; // 每页大小 PageHelper.startPage(pageNum, pageSize); Map paramsMap = new HashMap(); paramsMap.put("delFlag", 0); List roleList = this.roleMapper.queryList(paramsMap); PageInfo pageInfo = new PageInfo(roleList); return ResponseData.createBySuccess(pageInfo); }}
package com.what21.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.what21.demo.model.Role;import org.springframework.stereotype.Repository;import java.util.List;import java.util.Map;@Repositorypublic interface RoleMapper extends BaseMapper { public List queryList(Map paramsMap);}
<?xml version="1.0" encoding="UTF-8"?> select * from `health_sys_role` AND del_flag = #{delFlag}
【测试地址】
访问URI===> /demo/role/page、/demo/role/page2
【数据格式】
MyBatis分页
MyBatis-Plus分页
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)