文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>javaee中oracle分页...

javaee中oracle分页...

时间:2010-08-07  来源:tujun126

一、MVC分页

public class SqlPageSQL {
 /**
  *@param sql 原始sql语句
  *@param curPage 第几页
  *@param rowsPerPage 每页多少行
  */
 
 //Oracle分页sql语句
 public static String getPageOracle(String sql,int curPage,int rowsPerPage){
  //开始行数
  int begin = (curPage-1)*rowsPerPage;
  //结尾行数
  int end = begin + rowsPerPage;
  StringBuffer pagingSelect = new StringBuffer(200);
  pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
  pagingSelect.append(sql);
  pagingSelect.append(" ) row_ where rownum <= "+end+") where rownum_ > "+begin);
  return pagingSelect.toString();
 }
}

二、Hibernate单独分页

 /**
  * 获取对应用户的每一页的日记列表
  *
  * @param String author
  * @param int currentpage
  * @param int rowspage
  * @return List<DiaryBean>
  * @author tujun 2010-06-09
  */

 public static List<Diarys> getOnePageDiaryByAuthor(String author,int currentpage, int rowspage) {
  //读取配置信息
  Configuration cfg = new Configuration().configure();
  //创建会话工厂
  SessionFactory factory = cfg.buildSessionFactory();
  //通过工厂去打开会话
  Session session = factory.openSession();
  //开启一个事务
  session.beginTransaction();
  //持久化对象

  Query query = session.createQuery("from Diarys d where d.author =?");
  query.setString(0, author);
  query.setFirstResult(currentpage*rowspage);//从第几条记录开始查询。
  query.setMaxResults(rowspage);//表示一次查询多少条记录;
  List<Diarys> list=query.list();
  //提交事务
  session.getTransaction().commit();
  //关闭会话
  session.close();
  return list;
 }

三、spring+Hibernate组合分页

方法①:分页器分页

public List<Buied> getOnePageDiaryByAuthor(String t_buy_u_id, int currentpage,int rowspage) {
  List<Buied> list=new ArrayList<Buied>();
  DetachedCriteria d=null;
  DetachedCriteria a=d.forClass(Buied.class, t_buy_u_id);
  list=this.getHibernateTemplate().findByCriteria(a, currentpage*rowspage, rowspage);
  return list;
 }

方法②:subList函数分页

public List<Buied> getOnePageDiaryByAuthor(String t_buy_u_id, int currentpage,int rowspage) {
  List<Buied> list=new ArrayList<Buied>();
  int size=this.getHibernateTemplate().find(BUYNOTE,t_buy_u_id).size();
  if(size-currentpage*rowspage>rowspage){
   list=this.getHibernateTemplate().find(BUYNOTE,t_buy_u_id).subList(currentpage*rowspage, currentpage*rowspage+rowspage);
  }else{
   list=this.getHibernateTemplate().find(BUYNOTE,t_buy_u_id).subList(currentpage*rowspage, currentpage*rowspage+size-currentpage*rowspage);
  }
  return list;
 }

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载