iBatis的分頁

方式一:

調用它的分頁方法:List result = sqlMapClient.queryForList(id, parameterObject, skip, max);

方式二:

利用不同數據庫的特點,把分頁的條件作爲參數傳進去,在SQL語句處拼接。如MYSQL數據庫可以使用它的limit函數。

比較:方式二比較通用,只需調用相同的方法,即可實現分頁或者不分頁,此時分頁的參數只是做爲普通的參數。

     方式一比較簡單,在SQL語句處無需關注分頁的問題,ibatis會自動幫你分頁(因爲你調用了它的分頁方法)。

示例代碼:

方式一的代碼:

Map parameterObject= new HashMap();
String  sql="address.getAddressList";

int skip=0;

int max=25

List result = sqlMapClient.queryForList(sql, parameterObject, skip, max);

  <select id="getAddressList" parameterClass="java.util.HashMap" resultClass="last.soul.common.beans.Address">
    select id, username, name, sex, mobile, email, qq, company, address, postcode
    from address
  </select>

方式二的代碼:

Map parameterObject= new HashMap();
 parameterObject.put("orderByClause", "username asc");
 parameterObject.put("limimitClauseStart", startIndex);
 parameterObject.put("litClauseCount", pageSize);
 String  sql="address.getAddressList";

List result = sqlMapClient.queryForList(sql, parameterObject);

<select id="getAddressList" parameterClass="java.util.HashMap" resultClass="last.soul.common.beans.Address">
    select id, username, name, sex, mobile, email, qq, company, address, postcode
    from address
    <isParameterPresent>
      <isNotNull property="orderByClause">
        order by $orderByClause$
      </isNotNull>
      <isNotNull property="limitClauseStart">
        limit $limitClauseStart$, $limitClauseCount$
      </isNotNull>
    </isParameterPresent>
  </select>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章