首页 > java > Ibatis分页查询

Ibatis分页查询

2011年3月4日 亲亲宝宝 发表评论 阅读评论

Ibatis的分页查询,可谓是做的比较糟糕的,这里根据经验,认为能把分页简单化的一些东西分享一下,麻烦的就是这个配置文件了。

1、  在basedao中实现如下方法,其他dao类只要继承该类就可以了:

/* 需要注意statementName对应的为列表的sql,statementName+”_count”对应的为count的sql语句;

*/

public QueryResult search(String statementName,Object model,Pagination page) {

         Map map=new HashMap();

         map.put(“page”,page);//查询中起作用的就是,起始记录数和截止记录数

         map.put(“model”, model);//model就是存放查询的条件

         List list=queryForList(statementName, map);

         int count=queryForInt(statementName + “_count”, map);

         QueryResult result=new QueryResult();

         result.setCount(count);

         result.setList(list);

         return result ;

}

2、  在ibatis的xml文件中做如下定义,注意这里是oracle数据库的实现,mysql等数据库需要 修改一下select的方法

<sql>

       <![CDATA[

              from TEST_LOG t where 1=1

]]>

<dynamic >

 <isNotEmpty property=”model.userName” prepend=” and “>

     t.username like ‘%$model.userName$%’

 </isNotEmpty>

</dynamic>

</sql>

<select parameterClass=”map” resultClass=”log”>

<![CDATA[ select * from (select rownum rn,t.*

]]>

<include refid=”search_where”/>

         <![CDATA[

         and rownum<=#page.end#

                    ) A WHERE rn>#page.start#

                    ]]>

</select>

<select parameterClass=”map” resultClass=”Integer”>

<![CDATA[ select count(*)

]]>

<include refid=”search_where”/>

</select>

分类: java 标签: 3,101 次阅读
原文链接:http://www.wenhq.com/article/view_680.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.