Mybatis分页插件介绍
背景
作为一名java后端开发工程师,免不了要使用数据库,也免不了会用到mybatis框架,使用mybatis框架又免不了使用选择一个用于处理mybatis分页功能的插件,本文主要介绍两个用于处理分页的插件。
插件1 Mybatis-plus
依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.2</version>
</dependency>
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.0.2</version>
#注意里面的mybatis-spring要一样,不然版本会不兼容
mapper
public interface JijingMapper extends BaseMapper<Jijing> {}
分页代码
//参数一是当前页,参数二是每页个数
IPage<User> userPage = new Page<>(2, 2);
userPage = userMapper.selectPage(userPage, null);
配置类
@Configuration
public class MybatisConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor page = new PaginationInterceptor();return page;}@Beanpublic ISqlInjector sqlInjector() {return new DefaultSqlInjector();}}
实体类
@TableName("uwb_device_type")
public class DeviceTypeEntity extends AbstractBase {@TableLogic(value = "1",delval = "0") //走 Update value = "" 默认的原值 delval = "" 删除后的值protected Byte deletedFlg; #不能为private@TableField(fill = FieldFill.INSERT)@TableField(fill = FieldFill.INSERT_UPDATE)@TableField(exist=false)}
配置文件
mybatis-plus.mapperLocations = classpath*:mapper/*.xml
mybatis-plus.type-aliases-package = com.adong.adongauthority.mvc.model
mybatis-plus.global-config.db-config.id-type = AUTO
mybatis-plus.global-config.db-config.db-type = MYSQL
mybatis-plus.global-config.db-config.field-strategy = NOT_NULL
mybatis-plus.global-config.db-config.table-underline = true
mybatis-plus.global-config.db-config.logic-delete-value = 0
mybatis-plus.global-config.db-config.logic-not-delete-value = 1
mybatis-plus.global-config.sql-parser-cache = true
mybatis-plus.configuration.map-underscore-to-camel-case = true
mybatis-plus.configuration.cache-enabled = false
mybatis-plus.configuration.jdbc-type-for-null = NULL
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
启动类
@MapperScan("com.adong.adongauthority.dao")
自动补充插入或更新时的值
@Component
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.setFieldValByName("createBy", CookieUtil.getLoginUser(),metaObject);this.setFieldValByName("createTime", new Date(),metaObject);this.setFieldValByName("updateBy", CookieUtil.getLoginUser(),metaObject);this.setFieldValByName("updateTime", new Date(),metaObject);this.setFieldValByName("version", Long.valueOf(1),metaObject);this.setFieldValByName("appSecret", UUID.randomUUID().toString().replaceAll("-",""),metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {this.setFieldValByName("updateBy", CookieUtil.getLoginUser(),metaObject);this.setFieldValByName("updateTime", new Date(),metaObject);this.setFieldValByName("version", this.getFieldValByName("version",metaObject),metaObject);}
}
插件2 pagehelper
依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version></dependency>
使用
//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(queryDTO.getPage(), queryDTO.getListRows(),"create_time desc");
//紧跟着的第一个select方法会被分页
List<DeviceTypeEntity> list = deviceTypeDao.queryPageByEntity(queryDTO);
PageInfo page = new PageInfo(list);
return ResultVO.ok(page);
Example example = new Example(Person.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("personCode", personCodes).andIsNotNull("tagId");
List<Person> personList = personDao.selectByExample(example);
配置
package com.paic.ocss.gateway.dao.config;import com.baomidou.mybatisplus.entity.GlobalConfiguration;
import com.github.pagehelper.PageHelper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;import java.util.Properties;@Configuration
@MapperScan("com.paic.ocss.gateway.dao.mapper*")
@Import(value = { com.paic.ocss.monitor.cat.mybatis.SpringCloudCatMybatisConfig.class })
public class MybatisConfig {@Beanpublic GlobalConfiguration globalConfiguration() {GlobalConfiguration global = new GlobalConfiguration();global.setDbType("mysql");return global;}/*** 配置mybatis的分页插件pageHelper* @return*/@Beanpublic PageHelper pageHelper(){PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("offsetAsPageNum","true");properties.setProperty("rowBoundsWithCount","true");properties.setProperty("reasonable","true");//配置mysql数据库的方言properties.setProperty("dialect","mysql");pageHelper.setProperties(properties);return pageHelper;}}
Mybatis分页插件介绍相关推荐
- MyBatis分页插件PageHelper使用练习
转载自:http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown 1.环境准备: 分页插件p ...
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
2019独角兽企业重金招聘Python工程师标准>>> 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊 ...
- Mybatis:Mybatis分页插件
文章目录 1. Mybatis分页插件 1.1 分页插件介绍 1.2 分页插件的使用 1.3 分页插件的参数获取 1.4 分页插件知识小结 分页助手相关 API 1. Mybatis分页插件 1.1 ...
- 2. mybatis分页插件使用
1.概述 在做系统的过程中,分页查询是我们经常遇到的一个场景,我们可以借助mybatis分页插件方便的实现分页功能,本文分享怎样使用mybatis分页插件. 2.mybatis分页插件使用 mybat ...
- springboot整合mybatis分页插件
1.springboot版本为2.0.1,数据库为mysql,引入pagehelper的pom依赖 <!--mybatis分页插件--> <dependency><gro ...
- 解决使用mybatis分页插件PageHelper的一个报错问题
解决使用mybatis分页插件PageHelper的一个报错问题 参考文章: (1)解决使用mybatis分页插件PageHelper的一个报错问题 (2)https://www.cnblogs.co ...
- (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
http://blog.csdn.net/yerenyuan_pku/article/details/72774381 上文我们实现了展示后台页面的功能,而本文我们实现的主要功能是展示商品列表,大家要 ...
- 使用abel533大神的mybatis分页插件总结
今天使用了abel533大神的mybatis分页插件,遇到了写问题,特意在这里做个总结,方便以后查找. 首先该测试是在本人的ssm基础框架上实现的,有兴趣的可以先看看本人的博客置顶帖.高手就略过吧. ...
- Mybatis分页插件MybatisHelper的使用
Mybatis分页插件MybatisHelper的使用 MybatisHelper是Mybatis的一个数据分页插件,是国内的一个牛人""刘增辉""所写,功能强 ...
最新文章
- 感恩有你,链客一周年!
- unity 天空盒_使用Substance in Unity搭建Unity和SP的live link实时互通环境
- 机器学习规则 (Rules of Machine Learning): 关于机器学习工程的最佳实践
- python教授_Python为何如此优秀?斯坦福教授告诉你!
- 【转】单元测试基础知识
- CRI 与 ShimV2:一种 Kubernetes 集成容器运行时的新思路
- Kafka AKHQ 安装部署
- bootstrap-datetimepicker.js与IE8的兼容问题
- 【136】Cydia相关插件及配置
- android sim卡状态改变广播,android监听SIM状态
- 是时候展示真正的云存储黑科技了!
- python中矩阵怎么表示_python中的列矩阵表示
- 中国移动SP短信网关接入平台
- 大白菜装机教程win10_详解戴尔电脑一键重装系统win10教程
- 电商类目表创建类目树
- 短文:U盘物理写保护原理
- linux文件目录详解
- godot 顶级游戏引擎
- 通过docker部署zigbee2mqtt后出现web界面无法访问
- 一个轻量级内存池的实现与细节