一,需求:

CommonQuery--PyQueryBean

PyQueryBean:鹏飞历史记录查询,以往哪些人对征信进行了查询。
CommonQuery:查询条件:根据查询人(umName)、被查询人姓名(name)、身份证号(documentNo)、手机号(phone)、查询日期(queryDate)
二,配置相关:
1,mybatis-config.xml

<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
复制代码
2,pom依赖
 <!-- mybatis分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
三,代码
Controller
/**
* @param request, pyQueryBean
* @return com.pingan.credit.model.ResponseResult<java.util.List<com.pingan.credit.model.py.PyQueryBean>>
* @Description: 历史记录查询
* @date 2017/11/23 17:00
*/
@RequestMapping(path = "/queryPyHistoryRecord", method = {RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public ResponseResult<BasePageInfo<PyQueryBean>> queryPyHistoryRecord(HttpServletRequest request, CommonQuery commonQuery) {
ResponseResult<BasePageInfo<PyQueryBean>> responseResult = new ResponseResult<>();
try {
BasePageInfo<PyQueryBean> pageInfo = pyQueryService.queryHistoryRecord(commonQuery);
responseResult.setData(pageInfo);
responseResult.setRet(SUCCESS);
responseResult.setRefID(commonQuery.getRefID());
responseResult.setTimestamp(DateUtil.getTimeStamp().toString());
} catch (CreditException e) {
responseResult.setErrorCode(e.getErrorCode());
responseResult.setRet(SUCCESS);
responseResult.setErrorMsg(e.getMessage());
} catch (Exception e) {
responseResult.setErrorCode(PyCreditServiceErrorEnum.SYSTEM_ERROR.getCode());
responseResult.setRet(FAILED);
responseResult.setErrorMsg(PyCreditServiceErrorEnum.SYSTEM_ERROR.getMsg());
}
return responseResult;
}
接口响应类
public class ResponseResult<T> extends BasePojo {
/**成功标识符 **/
private boolean ret;
/** 异常信息**/
private String errorMsg;
/** 返回数据类型 **/
private T data;
/** 异常码 **/
private String errorCode;
/** 请求ID**/
private String refID;
/** 时间戳 **/
private String timestamp;
--响应结果类
public class PyQueryBean extends BaseQuery implements Serializable { private transient int id;
/**查询者姓名,不允许为空**/
private String name; //被查询者证件号码,不允许为空
private String documentNo; //被查询者手机号码,反欺诈的报告不允许为空 深圳个人征信可以为空
private String phone;
//查询原因ID,只能传本单位允许的查询原因 101
private String queryReasonID;
//96040 反欺诈 90008 深圳个人信用
private String subreportIDs; //引用ID,查询者提交的用于识别本次查询的流水号,系统返回结果中会原样包含该流水号。可以为空。
private String refID; private String umName;
//证件类型
private String documentType;
//报告
private String docId;
//查询日期
private String queryDate;
//查询类型
@JSONField(serialize = false )
private Integer queryType; private String imageId; //是否直连 1:直连
private Integer queryFromPy;
**
* 分页查询类
** @date 2017/11/29 15:54
**/
public class BasePageInfo<T>{ /**
* 总记录数
**/
private long total;
/**
* 结果集
**/
private List<T> list;
/**
* 第几页
**/
private int pageNum;
/**
* 每页记录数
*/
private int pageSize;
/**
* 总页数
**/
private int pages;
/**
* 当前页的数量 <= pageSize,该属性来自ArrayList的size属性
**/
private int size; /**
* 包装Page对象,因为直接返回Page对象,在JSON处理以及其他情况下会被当成List来处理,
* 而出现一些问题。
*
* @param list page结果
*/
public BasePageInfo(List<T> list) {
if (list instanceof Page) {
Page<T> page = (Page<T>) list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.total = page.getTotal();
this.pages = page.getPages();
this.list = page;
this.size = page.size();
}
}

**
* 通用查询类,封装查询条件* @date 2017/11/29 9:27
**/
public class CommonQuery extends BaseQuery {
/**
* 姓名
**/
private String name;
/**
* 身份证号
**/
private String documentNo;
/**
* 手机号
**/
private String phone;
/**
* 查询起始日期
**/
private String startDate;
/**
* 查询终止日期
**/
private String endDate;
/**
* 查询方式
**/
private String queryWay;
/**
* um帐号
**/
private String umName;
/**
* 引用ID
**/
private String refID;
/**
* 查询页码
**/
private int page;
/**
* 页面展示数量
**/
private int pageSize;
Service
    /**
* @param commonQuery, type, pageNum, pageSize
* @return com.github.pagehelper.PageInfo<com.pingan.credit.model.py.PyQueryBean>
* @Description: 根据查询人(umName)、被查询人姓名(name)、身份证号(documentNo)、手机号(phone)、查询日期(queryDate)
* @date 2017/11/29 9:24
*/
@Override
public BasePageInfo<PyQueryBean> queryHistoryRecord(CommonQuery commonQuery) throws Exception {
try {
logger.info("queryHistoryRecord ... ");
Map<String, Object> map = new HashMap<>();
map.put("obj", commonQuery);
PageHelper.startPage(commonQuery.getPage(), commonQuery.getPageSize());
List<PyQueryBean> list = queryRecordMapper.selectQueryRecordByCondition(map);
BasePageInfo<PyQueryBean> result = new BasePageInfo<>(list);
result.setList(list);
logger.info(JSON.toJSONString(list));
return result;
} catch (Exception e) {
logger.error("level0_queryHistoryRecord@PyQueryServiceImpl_Exception", e);
throw e;
} }
sql
<!-- 根据条件查询出历史记录 -->
<select id="selectQueryRecordByCondition" resultMap="BaseResultMap" parameterType="Map">
SELECT
name,documentNo,umName,to_char(queryDate,'yyyy-MM-dd hh24:mi:ss') as
queryDate,queryWay,queryReasonCode,queryReason
FROM ICS_PY_QUERYRECORD
<trim prefix="WHERE" prefixOverrides="AND | OR ">
<if test="obj.startDate !=null and obj.startDate !='' ">
<![CDATA[ AND QUERYDATE> to_date(#{obj.startDate,jdbcType=DATE},'yyyy-MM-dd hh24:mi:ss') ]]>
</if>
<if test="obj.endDate !=null and obj.endDate !='' ">
<![CDATA[ AND QUERYDATE<=to_date(#{obj.endDate,jdbcType=DATE},'yyyy-MM-dd hh24:mi:ss' )]]>
</if>
<if test="obj.umName != null and obj.umName !=''">
AND UMNAME = #{obj.umName,jdbcType=VARCHAR}
</if>
<if test="obj.name != null and obj.name !=''">
AND NAME = #{obj.name,jdbcType=VARCHAR}
</if>
<if test="obj.queryWay !=null and obj.queryWay !='' ">
AND QUERYWAY = #{obj.queryWay,jdbcType=VARCHAR}
</if>
<if test="obj.queryReasonCode !=null and obj.queryReasonCode !='' ">
AND QUERYREASONCODE = #{obj.queryReasonCode,jdbcType=VARCHAR}
</if>
</trim>
ORDER BY QUERYDATE DESC
</select>
 

 





插件PageHelper实现分页查询的更多相关文章

  1. SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询

    前言:本文档使用的是 SpringBoot,如果是 Spring 还需要在 MyBatis 配置 xml 中配置拦截器,并且 PageHelper 是针对 MyBatis 的,MyBatis 的集成不 ...

  2. ssm+PageHelper实现分页查询

    通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询.源码:https://gitee.com/smfx1314/pagehelper 看一下项目结构: 首先创建一个mav ...

  3. PageHelper实现分页查询

    PageHelper是基于拦截器实现的myBatis分页插件 PageHelper的Github主页 : https://github.com/pagehelper/Mybatis-PageHelpe ...

  4. ssm下使用分页插件PageHelper进行分页

    1. 导入maven依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId ...

  5. 使用PageHelper进行分页查询

    service层代码: public Result getDataSetList(String dataCode, String dataName, int pageIndex, int length ...

  6. Springboot 使用pageHelper实现分页查询

    本文链接:https://blog.csdn.net/qq_35387940/article/details/91530234

  7. 基于Mybatis分页插件PageHelper

    基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...

  8. (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示

    http://blog.csdn.net/yerenyuan_pku/article/details/72774381 上文我们实现了展示后台页面的功能,而本文我们实现的主要功能是展示商品列表,大家要 ...

  9. 5-7 分页查询PageHelper

    1. PageHelper实现分页查询 Day08 1.1 PH作用: PageHelper框架可以实现我们提供页码和每页条数, 自动实现分页效果,收集分页信息 1.2 PH原理: PageHelpe ...

随机推荐

  1. Cent OS 常用配置命令

    1.ifconfig   #查看网络接口状态 2.ifconfig –a  #查看主机所有接口的情况 3.ifconfig eth0 192.168.1.106 netmask 255.255.255 ...

  2. UVa 1620 懒惰的苏珊(逆序数)

    https://vjudge.net/problem/UVA-1620 题意:给出一个序列,每次可以翻转4个连续的数,判断是否可以变成1,2,3...n. 思路:考虑逆序数,通过计算可以得出每次翻转4 ...

  3. MongoVUE的Collections数据不显示的解决方法

    问题描述: 使用 mongoDB数据库, 数据添加成功了,使用命令行能查询出来,但在MongoVUE 中数据却不显示  (我使用的是 mongoDB 3.4 的版本) 原因:引擎问题,只要降到2.X版 ...

  4. shell模拟ctrl c停止

    kill命令可以带信号号码选项,也可以不带. 如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源. 也可以用kill向进程发送特定的信 ...

  5. [ios]安装CocoaPods及使用详解

    最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解 http://www.jianshu.com/p/b64b4fd08d3c CocoaPods的安装以及遇到的坑 ht ...

  6. URAL 1741 Communication Fiend

    URAL 1741 思路: dp 状态:dp[i][1]表示到第i个版本为正版的最少流量花费 dp[i][0]表示到第i个版本为盗版的最少流量花费 初始状态:dp[1][0]=dp[0][0]=0 目 ...

  7. Oracle数据库system用户忘记了密码怎么办

    1.在运行里面输入cmd调出dos窗口,然后在dos窗口中输入sqlplus /nolog 如:D:\oracle\ora92\bin>sqlplus /nolog 2.输入连接命令 如:SQL ...

  8. 12月22日 update_columns,完成第9节。

    Update_columns(attributes) //等同于update_column 直接更新database. 使用UPdate SQL 语法. ⚠️ :忽略了validations, Cal ...

  9. ACM-ICPC Beijing Online A The Book List

    比赛的时候一眼就看出是字典树+DFS了,然而这题题意比较难理解,还有不少WA点.所以很快敲完之后和队友反复斟酌题意,修改代码.结果还是交了3发WA.最后猜测目录和书在同一个母目录域下同名是不同的,增加 ...

  10. 微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)

    开发中常常遇到MD5加密,最近做小程序也用到了,简单总结了一下: 这要有两个加密文件,一个不支持中文,一个支持,所以你选择支持的来用就行了: 也随便说说小程序的get和post网络请求. 来看看效果图 ...