Mybatis分頁實現流程

來源:互聯網
上載者:User
第一步:封裝分頁bean
public class PaginationVO implements Serializable{


private static final long serialVersionUID = 1L;


private Integer page;//對應easyui頁面的page

private Integer rows;//對應easyui頁面的rows

private Integer begNum;

private Integer endNum;


public Integer getPage() {
return page;
}


public void setPage(Integer page) {
this.page = page;
}


public Integer getRows() {
return rows;
}


public void setRows(Integer rows) {
this.rows = rows;
}


/**
* 返回 begNum 的值
* @return begNum
*/

public Integer getBegNum() {
return begNum;
}



/**
* 設定 begNum 的值
* @param begNum begNum
*/
public void setBegNum(Integer page, Integer rows) {
this.begNum = (page - 1) * rows;
}


/**
* 返回 endNum 的值
* @return endNum
*/
public Integer getEndNum() {
return endNum;
}


/**
* 設定 endNum 的值
* @param endNum endNum
*/
public void setEndNum(Integer endNum) {
this.endNum = endNum;
}


/**
* 
* 描述 設定分頁資料
*/
public void setPaginationData() {
this.begNum = (page - 1) * rows;
this.endNum = rows;
}
}








第二步:業務vo繼承上面的類
public class FormInfoVO extends PaginationVO{...}




第三步:調用
json =new  GridListJson();
try {
instance.setPaginationData();
json.setRows(userService.findUserList(instance));
json.setTotal(userService.getUserTotal(instance));




第四步:page.xml分頁對應檔封裝
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >


<mapper namespace="page">
<sql id="pageBegin">
SELECT A.* FROM (
  </sql>
 
  <sql id="pageEnd">
) A LIMIT #{begNum}, #{endNum}
  </sql>
 
  <sql id="pageCount">
  SELECT count(1) as cnt
  </sql>
</mapper>




第五步:UserManaMapper.xml業務對應檔調用分頁組件
<select id="findUserList" parameterType="userVO"
resultMap="BaseResultMap">
<include refid="page.pageBegin" /> <!--分頁組件調用 首碼-->
select * from t_user
<include refid="page.pageEnd" /><!--分頁組件調用 尾碼-->
</select>
   




mybatis中加入對上面兩個對應檔的配置
<mappers>
<mapper resource="mybatis/page.xml"></mapper>
<mapper resource="mybatis/UserManaMapper.xml"/>
</mappers>






前台說明:


<table id="tt" class="easyui-datagrid" style="width:600px;height:250px"  
        url="datagrid2_getdata.php"  
        title="Load Data" iconCls="icon-save"  
        rownumbers="true" pagination="true">  
    <thead>  
        <tr>  
            <th field="userid" width="80">user ID</th>  
            <th field="name" width="80">user name</th>  
        </tr>  
    </thead>  
</table>  
我們定義datagrid的datagrid和設定'pagination'屬性為true,它將產生一個分頁工具列在datagrid的底部pagination將發送2個參數到伺服器:
page: 頁碼,起始值 1.
rows: 每頁顯示行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.