使用JPA编写
用于简单的对象分页查询
- 编写查询对象
注意继承了PageInfo类
@Data
public class xxxQuery extends PageInfo {
/**
* 调用人
*/
@ApiModelProperty(value = "调用人ID")
private String param;
}
- 编写分页查询接口
@Repository
public interface YourRepository extends JpaRepository<YourEntity, Integer> {
Page<YourEntity> findByParamContains(String param, Pageable request);
}
- 业务层调用
public Page<YourEntity> findByParamContains(xxxQuery query) {
return repository.findByParamContains(query.getParam(),query.getRequest());
}
MyBatis的分页接口写法
用于复杂的多表关联的分页接口写法
- 编写查询对象
注意继承了PageInfo类
@Data
public class xxxQuery extends PageInfo {
/**
* 调用人
*/
@ApiModelProperty(value = "调用人ID")
private String param;
}
- 编写dao层
注意这里是查询列表即可
/**
* 查询日志记录
*
* @param logQueryDTO 查询条件
* @return 返回结果
*/
List<xxxDTO> getByQuery(@Param("dto") xxxQuery query);
- 编写对应的mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hvisions.xxx.dao.xxxMapper">
<resultMap id="log" type="com.hvisions.xxxDTO">
</resultMap>
<select id="getLogByQuery" resultMap="log" parameterType="com.hvisions.xxxDTO" >
select * from tableA t1
join tableB t2 on t1.id = t2.joinId
<where>
<if test="dto.param!=null and dto.param != ''">
t1.param= #{dto.param}
</if>
</where>
</select>
</mapper>
- 在应用层调用
PageHelperUtil.getPage(mapper::getByQuery, query);