使用Haha.hibernate.jar完成Hibernate+JSP的分页功能
1.创建项目,添加Hibernate支持,并将驱动包和haha.hibernate.jar相关包引入
2.创建实体Bean(这里我采用注解)Book.java
@Entity(name="Books")
public class Book implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String title;
...
}
3.配置hibernate.cfg.xml
<mapping class="com.haha.bean.Book" />
4.编写数据访问层类BookDao
public class BookDao extends HibernateDao<Book, Integer> {
/**
* 分页查询
* @param pageSize 页大小
* @param pageIndex 当前页面码,从0开始
* @return 返回分页对象
*/
public Page<Book> findAllByPage(int pageSize,int pageIndex){
Page<Book> page=new Page<Book>(pageSize);
page.setPageNo(pageIndex);
findPage(page);
return page;
}
}
5.在JSP页面中使用,核心代码:
<%
//创建Http工具类
HttpTools ht=new HttpTools(request);
//创建DAO类,简化了操作,没有使用Biz层
BookDao bookDao=new BookDao();
//页大小
int pageSize=10;
//当前页码
int pageIndex= ht.getInt("p");
//分页查询
Page<Book> pg=bookDao.findAllByPage(pageSize,pageIndex);
//将图书对象放入request,方便使用JSTL获取
request.setAttribute("books",pg.getResult());
%>
<table border="1">
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th>UnitPrice</th>
</tr>
<c:forEach items="${books}" var="b">
<tr>
<td>${b.id}</td>
<td>${b.title}</td>
<td>${b.author}</td>
<td>${b.unitPrice}</td>
</tr>
</c:forEach>
<tr>
<td colspan="4"><%=pg.makeNav("index.jsp")%></td>
</tr>
</table>
6.运行后效果