整合Mybatis使用Mapper和PageHelper
1、添加新的依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
2、添加新的配置属性
mapper:
enum-as-simple-type: true
identity: MYSQL
mappers: tk.mybatis.mapper.common.Mapper
not-empty: true
pagehelper:
helper-dialect: mysql
params: count=countSql
reasonable: false
support-methods-arguments: true
mybatis:
configuration:
map-underscore-to-camel-case: true
mapper-locations: classpath:com/carry/mapper/*Mapper.xml
type-aliases-package: com.carry.entity
3、构建实体类
@Data
@NoArgsConstructor
@Table(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = -8057591359892731452L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
}
4、创建Mapper
public interface UserMapper extends Mapper<User> {
public Page<Category> getCategoryByPage();
}
5、创建映射配置xml
<select id="countByUsername" resultType="java.lang.Integer">
SELECT count(1) FROM user WHERE username = #{username}
</select>
6、创建Service类
public QueryResult<Category> getCategoryByPage(int page, int size) {
PageHelper.startPage(page, size);
Page<Category> categoryPage = categoryMapper.getCategoryByPage();
List<Category> result = categoryPage.getResult();
QueryResult<Category> queryResult = new QueryResult<>();
queryResult.setList(result);
queryResult.setTotal(result.size());
return queryResult;
}
public PageInfo<ResponseEntityDto> page(RequestParamDto param) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<ResoinseEntityDto> list = mapper.selectManySelective(param);
PageInfo<ResponseEntityDto> pageInfo = (PageInfo<ResponseEntityDto>)list;
return pageInfo;
}
public PageInfo<ResponseEntityDto> page(RequestParamDto param) {
return PageHelper.startPage(param.getPageNum(), param.getPageSize())
.doSelectPageInfo(() -> list(param))
}
public List<ResponseEntityDto> list(RequestParamDto param) {
return mapper.selectManySelective(param);
}