Mybatis的插件开发
PageHelper分页插件
项目地址:https://github.com/pagehelper/Mybatis-PageHelper
文档地址:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
使用步骤
1 | <dependency> |
在 MyBatis 配置 xml 中配置拦截器插件
1 | <plugins> |
代码中使用方法
1 | //第二种,Mapper接口方式的调用,推荐这种使用方式。 |
常用方法介绍
RowBounds方式的调用
1 | List<Country> list = sqlSession.selectList("x.y.selectIf", null, new RowBounds(1, 10)); |
使用这种调用方式时,你可以使用RowBounds参数进行分页,这种方式侵入性最小,我们可以看到,通过RowBounds方式调用只是使用了这个参数,并没有增加其他任何内容。分页插件检测到使用了RowBounds参数时,就会对该查询进行物理分页
PageHelper.startPage静态方法调用
在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage
静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。
PageInfo用法
1 | //获取第1页,10条内容,默认查询总数count |
Mybatis批量保存
在MyBatis的全局设置中有设置,defaultExecutorType 配置默认的执行器
- SIMPLE 就是普通的执行器;
- REUSE 执行器会重用预处理语句(prepared statements);
- BATCH 执行器将重用语句并执行批量更新
但是,如果在全局设置中设置批量执行器,那么每一个mapper中的方法都会执行批量操作,所以我们一般都是在与Spring整合后在Application.xml中配置一个可以执行批量操作的sqlSession,如下
1 | <!--创建出SqlSessionFactory对象 --> |
在Service中自动注入SQLSession
1 |
|