IBatis分页配置

IBatis分页方法我没去看,这里讲的分页为通过SQL语句来分页。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap>
<!-- 定义别名 -->
<typeAlias alias="user" type="com.szli.vo.EsbAdminUserInfo" />
<typeAlias alias="pager" type="com.szli.vo.Pager" />

<resultMap id="query_user_map" class="user">
<result property="userId" column="USERID" javaType="java.lang.Long" jdbcType="NUMBER"></result>
<result property="userName" column="USERNAME" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="passWord" column="PASSWORD" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="email" column="EMAIL" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="status" column="STATUS" javaType="java.lang.Integer" jdbcType="NUMBER"></result>
<result property="lastLoginTime" column="LASTLOGINTIME" javaType="java.util.Date" jdbcType="DATE"></result>
<result property="failCount" column="FAILCOUNT" javaType="java.lang.Integer" jdbcType="NUMBER"></result>
<result property="lockTime" column="LOCKTIME" javaType="java.util.Date" jdbcType="DATE"></result>
<result property="tenantId" column="TENANT_ID" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="skin" column="SKIN" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="userGroup.groupId" column="GROUPID" javaType="java.lang.Long" jdbcType="NUMBER"></result>
<result property="userGroup.groupName" column="GROUPNAME" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="userGroup.status" column="STATUS" javaType="java.lang.Integer" jdbcType="NUMBER"></result>
<result property="userGroup.description" column="DESCRIPTION" javaType="java.lang.String" jdbcType="VARCHAR2"></result>
<result property="userGroup.groupType" column="GROUPTYPE" javaType="java.lang.Integer" jdbcType="NUMBER"></result>
</resultMap>

<select id="query_user_by_map" resultMap="query_user_map" parameterClass="java.util.HashMap">
<![CDATA[
SELECT * FROM (SELECT ROWNUM r,in_ui.* FROM esb_admin_user_info in_ui WHERE ROWNUM <= #ENDROWNUM#) ui,
esb_admin_group_info gi WHERE ui.GROUPID = gi.GROUPID AND ui.r >= #STARTROWNUM#
]]>
<isNotEmpty property="USERINFO">
<isNotEmpty prepend="AND" property="USERINFO.userName">
USERNAME LIKE #USERINFO.userName#
</isNotEmpty>
<isNotEmpty property="USERINFO.userGroup">
<isGreaterThan prepend="AND" property="USERINFO.userGroup.groupId" compareValue="0">
gi.GROUPID = #USERINFO.userGroup.groupId#
</isGreaterThan>
</isNotEmpty>
</isNotEmpty>
</select>
</sqlMap>

Dao层传递过来的是一个Map集合,而Map集合中又包括查询条件与起始行‘STARTROWNUM’、总共需要多少行‘ENDROWNUM’(这两个值是由当前页与页大小算出来的:

Map<String,Object> params = new HashMap<String, Object>();

params.put("USERINFO", userInfo);
params.put("STARTROWNUM", (pageCurrent-1)*pageSize+1);
params.put("ENDROWNUM",(pageCurrent-1)*pageSize+pageSize);
).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值