- 把插件jar包導入項目(具體上篇有介紹http://blog.csdn.net/qq_33624284/article/details/72821811)
- spring-mybatis.xml文件中配置
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自動掃描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/wl/goldatg/mapping/*.xml"></property>
<!-- 配置分頁插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=mysql
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
## 下面我們就可以使用 ##
- 新建sql語句,返回list結果集
<select id="selectByList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user_t
</select>
- service層
public List<User> selectByList() {
return this.userDao.selectByList();
}
- Controller類
@RequestMapping("/userList")
public String userList(@RequestParam(required=true,defaultValue="1") Integer page,HttpServletRequest request,Model model){
//PageHelper.startPage(page, pageSize);這段代碼表示,程序開始分頁了,page默認值是1,pageSize默認是10,意思是從第1頁開始,每頁顯示10條記錄。
PageHelper.startPage(page, 3);
List<User> userList = userService.selectByList();
PageInfo<User> p=new PageInfo<User>(userList);
model.addAttribute("page", p);
model.addAttribute("userList",userList);
return "showUser";
}
PageInfo這個類是插件里的類,非常方便的調用,分頁再次提高性能:
//當前頁
private int pageNum;
//每頁的數量
private int pageSize;
//當前頁的數量
private int size;
//排序
private String orderBy;
//由於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 int nextPage;
//最后一頁
private int lastPage;
//是否為第一頁
private boolean isFirstPage = false;
//是否為最后一頁
private boolean isLastPage = false;
//是否有前一頁
private boolean hasPreviousPage = false;
//是否有下一頁
private boolean hasNextPage = false;
//導航頁碼數
private int navigatePages;
//所有導航頁號
private int[] navigatepageNums;
使用PageInfo這個類,你需要將查詢出來的list放進去:
List<User> userList = userService.selectByList();
PageInfo<User> p=new PageInfo<User>(userList);
頁面使用非常方便,直接貼代碼:
- 控制層
model.addAttribute("page", p);
- 前台頁面
<body>
<center>
<table width="200" border="1">
<tr>
<th scope="col">序號</th>
<th scope="col">ID</th>
<th scope="col">姓名</th>
<th scope="col">密碼</th>
<th scope="col">年齡</th>
</tr>
<c:forEach begin="0" step="1" items="${userList}" var="list" varStatus="userlist">
<tr>
<td>${userlist.count}</td>
<td>${list.id}</td>
<td>${list.userName}</td>
<td>${list.password}</td>
<td>${list.age}</td>
</tr>
</c:forEach>
</table>
<p>一共${page.pages}頁</p>
<a href="userList?page=${page.firstPage}">第一頁</a>
<a href="userList?page=${page.nextPage}">下一頁</a>
<a href="userList?page=${page.prePage}">上一頁</a>
<a href="userList?page=${page.lastPage}">最后頁</a>
</center>
</body>
最后結果顯示:(關鍵點${page.prePage}簡單又快捷)