文章目录
MyBatis 常用第三方插件
PageHelper
分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
开发步骤:
- pom导入通用PageHelper的坐标
- 在MyBatis核心配置文件中配置PageHelper插件
- 测试分页数据获取
pom导入通用PageHelper的坐标
<!-- 分页助手 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.7.5</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
在MyBatis核心配置文件中配置PageHelper插件
<!-- 分页助手 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定方言 -->
<property name="dialect" value="mysql"/>
</plugin>
测试分页代码实现
@Test
public void testPageHelper(){
// 设置分页参数
PageHelper.startPage(1,2);
List<User> userList = userMapper.selectAll();
for (User user : userList) {
System.out.println(user);
}
PageInfo<User> pageInfo = new PageInfo<>(userList);
System.out.println("总条数"+pageInfo.getTotal());
System.out.println("总页数"+pageInfo.getPages());
System.out.println("当前页"+pageInfo.getPageNum());
System.out.println("每页显示长度"+pageInfo.getPageSize());
System.out.println("是否第一页"+pageInfo.isIsFirstPage());
System.out.println("是否最后一页"+pageInfo.isIsLastPage());
}
输出
User{id=1, username='原始数据', orderList=[], roleList=[]}
User{id=2, username='coco', orderList=[], roleList=[]}
总条数5
总页数3
当前页1
每页显示长度2
是否第一页true
是否最后一页false
可以看到,实现了分页的效果
通用mapper
通用mapper就是为了解决单表增删改查,基于MyBatis的插件机制,使得开发人员不需要编写SQL,不需要在mapper中增加方法,只要写好实体类,就能支持相应的增删改查操作
开发步骤
- pom导入通用mapper的坐标
- 在MyBatis核心配置文件中配置通用mapper插件
- 测试通用mapper
pom导入通用mapper的坐标
<!-- 通用mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.1.2</version>
</dependency>
在MyBatis核心配置文件中配置通用mapper插件
<!-- 通用mapper -->
<plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor">
<!-- 通用Mapper接口,多个通用接口用逗号隔开 -->
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
</plugin>
测试类
User实体类
@Table(name = "user")
public class CommonUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
}
对应的Mapper接口需要实现Mapper
public interface CommonUserMapper extends Mapper<CommonUser> {
}
测试类:
@Test
public void testCommonMapper(){
// select 接口
List<CommonUser> users = commonUserMapper.select(null);
for (CommonUser user : users) {
System.out.println(user);
}
}
输出
CommonUser{id=1, username='原始数据'}
CommonUser{id=2, username='coco'}
CommonUser{id=3, username='kk'}
CommonUser{id=4, username='ccham'}
CommonUser{id=5, username='zz'}
我们看到,Common接口已经帮我们实现了大部分单表查询的接口