需要maven的依賴
<!-- pagehelper :分頁插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency> <!-- pagehelper的依賴包:jsqlparser --> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>0.9.5</version> </dependency>
applicationCentext.xml配置:
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自動掃描mapping.xml文件 --> <property name="mapperLocations" value="classpath:site/gaoyisheng/mapping/*.xml"></property> <!-- 分頁插件 pagehelper --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--使用下面的方式配置參數,一行配置一個 --> <value>
dialect=mysql //我用的是mysql
reasonable=true
</value> </property> </bean> </array> </property> </bean>
使用說明
當前頁 private int pageNum; 每頁的數量 private int pageSize; 當前頁的數量 private int size; //由於startRow和endRow不常用,這里說個具體的用法 //可以在頁面中"顯示startRow到endRow 共size條數據" 當前頁面第一個元素在數據庫中的行號 private int startRow; 當前頁面最后一個元素在數據庫中的行號 private int endRow; 總記錄數 private long total; 總頁數 private int pages; 結果集 private List<T> list; 第一頁 private int firstPage; 前一頁 private int prePage; 是否為第一頁 private boolean isFirstPage = false; 是否為最后一頁 private boolean isLastPage = false; 是否有前一頁 private boolean hasPreviousPage = false; 是否有下一頁 private boolean hasNextPage = false; 導航頁碼數 private int navigatePages; 所有導航頁號 private int[] navigatepageNums; 后台分頁 服務器端 service public PageInfo<T> methodName(int pageNum, int pageSize) { //1 設置分頁 PageHelper.startPage(pageNum, pageSize); //2 查詢 List<T> list =TMapper.mapperMethod(); //3 返回 return new PageInfo<>(list); } Web public @ResponseBody DataGridResultInfo methodName (Vovo){ //1 查詢 PageInfo<T> pageInfo = service. methodName (vo.getPage(), vo.getRows()); //2 封裝 return new DataGridBean(pageInfo.getTotal() , pageInfo.getList() ); } 瀏覽器端 Datagrid $(function(){ //繪制datagrid //1 准備數據 // 1.1 列列表 var columnArr = [[ {field:'字段名1',title:'標題1',width:80}, {field:'字段名2',title:'標題2',width:80, formatter:function(value,rows,index){ //filed匹配值(當前的值),當前行,當前行號 return value.info; } } ]]; // 1.2 工具條 var toolbarArr = [ { iconCls: 'icon-add',//按鈕圖標 text : '添加用戶', handler: showadduser//方法名 } ]; // 1.3 請求路徑 var url = "……"; //2 准備參數 var options = { "columns":columnArr, "toolbar":toolbarArr, "striped":true, //隔行換色 "idField":"id", //標識字段 "url":url, //請求路徑 "pagination":true, "rownumbers":true, "pageSize":2, "pageList":[2,4,6,8] }; //3 繪制 $("#id值").datagrid( options ); });