使用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.运行后效果