在MyBatis配置文件中集成:SqlMapConfig.xml
<plugins>
<!-- 分页插件 分页插件配置在通用Mapper上面,否则会报错 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true" />
</plugin>
<!-- 通用Mapper -->
<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
<!--主键自增回写方法,默认值MYSQL,详细说明请看文档 -->
<property name="IDENTITY" value="MYSQL" />
<!--通用Mapper接口,多个通用接口用逗号隔开 -->
<property name="mappers" value="com.github.abel533.mapper.Mapper" />
</plugin>
</plugins>
使用通用Mapper:
1、正常创建Mapper接口,集成通用Mapper即可。
不需要创建对应的Mapper.xml文件。但只能对单表操作
多表时,则创建对应的Mapper.xml(正常的做法)
public interface NewUserMapper extends Mapper<User> {
2、修改POJO:
添加注解
@Table(name="user")
public class User {
// 主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 用户名
@Column // 驼峰式命名规则,可以省略
private String userName;
3、测试
注:
selectone在查询结果为两条或以上时,会抛出异常。
insertSelective保存时会忽略空值。
updateByPrimaryKeySelective更新时会忽略空值。
使用分页插件:
测试用例:
@Test
public void testQueryByPage1() {
// 分页插件
PageHelper.startPage(2, 2);
List<User> list = this.newUserMapper.select(null);
for (User user : list) {
System.out.println(user);
}
// 分页信息 使用 pageInfo
PageInfo<User> info = new PageInfo<>(list);
System.out.println("总记录数:" + info.getTotal());
System.out.println("总页数:" + info.getPages());
}