仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 640|回复: 9
打印 上一主题 下一主题

[学习教程] 来看paginationCode(hibenagte分页)

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,
importorg.apache.log4j.Logger;
importjava.util.List;
/**
*@authorPietroPolsinellippolsinelli@open-lab.com
*/
publicinterfacePage{
 booleanisFirstPage();
 booleanisLastPage();
 booleanhasNextPage();
 booleanhasPreviousPage();
 intgetLastPageNumber();
 ListgetThisPageElements();
 LoggergetLogger();
 intgetTotalNumberOfElements();
 intgetThisPageFirstElementNumber();
 intgetThisPageLastElementNumber();
 intgetNextPageNumber();
 intgetPreviousPageNumber();
 intgetPageSize();
 intgetPageNumber();
}
importnet.sf.hibernate.*;
importnet.sf.hibernate.impl.SQLQueryImpl;
importnet.sf.hibernate.persister.EntityPersister;
importorg.apache.log4j.Logger;
importorg.jblooming.PlatformRuntimeException;
importorg.jblooming.persistence.hibernate.HibernateFactory;
importorg.jblooming.tracer.Tracer;
importorg.jblooming.waf.settings.ApplicationState;
importjava.util.HashSet;
importjava.util.List;
importjava.util.Set;
importjava.sql.SQLException;
importjava.sql.Connection;
importjava.sql.ResultSet;
/**
*@authorPietroPolsinellippolsinelli@open-lab.com
*/
publicclassHibernatePageimplementsPage{
 protectedListelements;
 protectedintpageSize;
 protectedintpageNumber;
 protectedinttotalElements=0;
 publicstaticSetjdbcClassesSupportingScrollCursors=newHashSet();
 privateScrollableResultsscrollableResults;
 privateHibernatePage(intpageNumber,intpageSize){
  this.pageNumber=pageNumber;
  this.pageSize=pageSize;
 }
 publicbooleanisFirstPage(){
  returngetPageNumber()==0;
 }
 publicbooleanisLastPage(){
  returngetPageNumber()>=getLastPageNumber();
 }
 publicbooleanhasNextPage(){
  returnelements.size()>getPageSize();
 }
 publicbooleanhasPreviousPage(){
  returngetPageNumber()>0;
 }
 publicintgetLastPageNumber(){
  doubletotalResults=
      newInteger(getTotalNumberOfElements()).doubleValue();
  returnnewDouble(Math.floor(totalResults/getPageSize())).intValue();
 }
 publicListgetThisPageElements(){
/*
*SinceweretrievedonemorethanthespecifiedpageSizewhenthe
*classwasconstructed,wenowtrimitdowntothepageSizeifanext
*pageexists.
*/
  returnhasNextPage()?elements.subList(0,getPageSize()):elements;
 }
 publicLoggergetLogger(){
  returnTracer.hibernateLogger;
 }
 publicintgetTotalNumberOfElements(){
  returntotalElements;
 }
 publicintgetThisPageFirstElementNumber(){
  returngetPageNumber()*getPageSize()+1;
 }
 publicintgetThisPageLastElementNumber(){
  intfullPage=getThisPageFirstElementNumber()+getPageSize()-1;
  returngetTotalNumberOfElements()<fullPage?
      getTotalNumberOfElements():
      fullPage;
 }
 publicintgetNextPageNumber(){
  returngetPageNumber()+1;
 }
 publicintgetPreviousPageNumber(){
  returngetPageNumber()-1;
 }
 publicintgetPageSize(){
  returnpageSize;
 }
 publicintgetPageNumber(){
  returnpageNumber;
 }
 publicstaticHibernatePagegetHibernatePageInstance(Queryquery,intpageNumber,intpageSize){
   returngetHibernatePageInstance(query,pageNumber,pageSize,ApplicationState.platformConfiguration.driver_class);
 }
 publicstaticHibernatePagegetHibernatePageInstance(Queryquery,
                           intpageNumber,
                           intpageSize,
                           StringdriverClass) {
  if(jdbcClassesSupportingScrollCursors.contains(driverClass))
   returnHibernatePage.getScrollPageInstanceWithTotalByScroll(query,pageNumber,pageSize);
  else
   returnHibernatePage.getScrollPageInstanceWithTotalByList(query,pageNumber,pageSize);
 }
 /**
 *ConstructanewHibernatePage.HibernatePagenumbersarezero-basedsothe
 *firstpageispage0.
 *
 *@paramquery   theHibernateQuery
 *@parampageNumberthepagenumber(zero-based);
 *         ifInteger.MAX_VALUEwillreturnthelastpageforthequery
 *@parampageSize thenumberofresultstodisplayonthepage
 */
 protectedstaticHibernatePagegetScrollPageInstanceWithTotalByScroll(Queryquery,intpageNumber,intpageSize){
  HibernatePagesp=newHibernatePage(pageNumber,pageSize);
  try{
   sp.scrollableResults=query.scroll(ScrollMode.SCROLL_SENSITIVE);
   sp.scrollableResults.last();
   sp.totalElements=sp.scrollableResults.getRowNumber();
   sp.determineElements(query);
  }catch(HibernateExceptione){
   sp.getLogger().error("FailedtocreateScrollPagebygetScrollPageInstanceWithTotalByScroll:"+e.getMessage());
   thrownewPlatformRuntimeException(e);
  }
  returnsp;
 }
 /**
 *ConstructanewHibernatePage.HibernatePagenumbersarezero-basedsothe
 *firstpageispage0.
 *
 *@paramquery   theHibernateQuery
 *@parampageNumberthepagenumber(zero-based);
 *         ifInteger.MAX_VALUEwillreturnthelastpageforthequery
 *@parampageSize thenumberofresultstodisplayonthepage
 */
 protectedstaticHibernatePagegetScrollPageInstanceWithTotalByList(Queryquery,intpageNumber,intpageSize){
  HibernatePagesp=newHibernatePage(pageNumber,pageSize);
  try{
   sp.scrollableResults=query.scroll(ScrollMode.FORWARD_ONLY);
   sp.totalElements=sp.calculateTotalElementsByList(query);
   sp.determineElements(query);
  }catch(HibernateExceptione){
   sp.getLogger().error("FailedtocreateScrollPagebygetScrollPageInstanceWithTotalByQuery:"+e.getMessage());
   thrownewPlatformRuntimeException(e);
  }
  returnsp;
 }
 privatevoiddetermineElements(Queryquery)throwsHibernateException{
  if(Integer.MAX_VALUE==this.pageNumber)
   this.pageNumber=(getTotalNumberOfElements()/this.pageSize);
  /**
  *todo:thisnomoremakessense,asweknowthetotalnumberofelements
  *
  *WesetthemaxresultstoonemorethanthespecfiedpageSizeto
  *determineifanymoreresultsexist(i.e.ifthereisanextpage
  *todisplay).TheresultsetistrimmeddowntojustthepageSize
  *beforebeingdisplayedlater(ingetThisPageElements()).
  */
  elements=query.setFirstResult(this.pageNumber*this.pageSize).setMaxResults(this.pageSize+1).list();
 }
 privateintcalculateTotalElementsByList(Queryquery)throwsHibernateException{
  returnquery.list().size();
 }
}
packageorg.jblooming.page;
importorg.apache.log4j.Logger;
importorg.jblooming.tracer.Tracer;
importjava.util.List;
/**
*@authorPietroPolsinellippolsinelli@open-lab.com
*/
publicclassListPageimplementsPage{
 privateListelements;
 privateintpageSize;
 privateintpageNumber;
 /**
 *ConstructanewListPage.ListPagenumbersarezero-based,sothe
 *firstpageispage0.
 *
 *@parampageNumberthepagenumber(zero-based);
 *         ifInteger.MAX_VALUEwillreturnthelastpageforthequery
 *@parampageSize thenumberofresultstodisplayonthepage
 */
 publicListPage(Listelements,intpageNumber,intpageSize){
  this.elements=elements;
  this.pageSize=pageSize;
  this.pageNumber=pageNumber;
  if(Integer.MAX_VALUE==this.pageNumber)
   this.pageNumber=(getTotalNumberOfElements()/this.pageSize);
 }
 publicbooleanisFirstPage(){
  returngetPageNumber()==0;
 }
 publicbooleanisLastPage(){
  returngetPageNumber()>=getLastPageNumber();
 }
 publicbooleanhasNextPage(){
  return((getPageNumber()+1)*getPageSize())<
      (getTotalNumberOfElements()+1);
 }
 publicbooleanhasPreviousPage(){
  returngetPageNumber()>0;
 }
 publicintgetLastPageNumber(){
/*
*WeusetheMath.floor()methodbecausepagenumbersarezero-based
*(i.e.thefirstpageispage0).
*/
  doubletotalResults=newInteger(getTotalNumberOfElements()).doubleValue();
  returnnewDouble(Math.floor(totalResults/getPageSize())).intValue();
 }
 publicListgetThisPageElements(){
/*
*SinceweretrievedonemorethanthespecifiedpageSizewhenthe
*classwasconstructed,wenowtrimitdowntothepageSizeifanext
*pageexists.
*/
  finalintstart=getPageNumber()*getPageSize();
  returnelements.subList(Math.min(start,getTotalNumberOfElements()+1),
      Math.min(start+getPageSize(),getTotalNumberOfElements()+1));
 }
 publicLoggergetLogger(){
  returnTracer.hibernateLogger;
 }
 /**
 *thisis0-based,differentlyfromlist.size();
 */
 publicintgetTotalNumberOfElements(){
  returnelements.size()-1;
 }
 publicintgetThisPageFirstElementNumber(){
  returngetPageNumber()*getPageSize()+1;
 }
 publicintgetThisPageLastElementNumber(){
  intfullPage=getThisPageFirstElementNumber()+getPageSize()-1;
  returngetTotalNumberOfElements()<fullPage?
      getTotalNumberOfElements():
      fullPage;
 }
 publicintgetNextPageNumber(){
  returngetPageNumber()+1;
 }
 publicintgetPreviousPageNumber(){
  returngetPageNumber()-1;
 }
 publicintgetPageSize(){
  returnpageSize;
 }
 publicintgetPageNumber(){
  returnpageNumber;
 }
}

主要缺点就是:速度比较慢,没有C和C++快
山那边是海 该用户已被删除
沙发
发表于 2015-1-20 11:44:27 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
莫相离 该用户已被删除
板凳
发表于 2015-1-29 07:00:24 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-2 07:22:36 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
小妖女 该用户已被删除
5#
发表于 2015-2-5 10:30:31 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
小女巫 该用户已被删除
6#
发表于 2015-2-11 08:53:12 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-3 15:00:21 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
柔情似水 该用户已被删除
8#
发表于 2015-3-6 23:38:07 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
简单生活 该用户已被删除
9#
发表于 2015-3-13 09:12:32 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-20 18:18:29 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 08:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表