插件PageHelper實現分頁查詢

    一,需求:java

CommonQuery--PyQueryBeanmysql

PyQueryBean:鵬飛歷史記錄查詢,以往哪些人對徵信進行了查詢。
CommonQuery:查詢條件:根據查詢人(umName)、被查詢人姓名(name)、身份證號(documentNo)、手機號(phone)、查詢日期(queryDate)
二,配置相關:
1,mybatis-config.xml
git

<!-- 配置分頁插件 -->
    <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>
相關文章
相關標籤/搜索