长腮的北极熊 2016-02-03 06:53 采纳率: 0%
浏览 1334
已结题

Hibernate分页效率问题

项目中使用了公司封装的数据库操作jar,但Hibernate分页效率总是不高,怀疑底层是先查后分页的情况,底子不好 各位大神劳烦看下 是先查询后分的页吗?(请先回答此问题)
有什么优化建议没?
sqlstr 为sql语句,mapps为条件

  public Map getList(String sqlstr, Map mapps, int iPageNo, int iPageSize) throws DAOException

{
HibernateCallback callback = new HibernateCallback(this, sqlstr, mapps, iPageNo, iPageSize) { final HibernatePersistenceManager this$0;
private final String val$sqlstr;
private final Map val$mapps;
private final int val$iPageNo;
private final int val$iPageSize;

  public Object doInHibernate() throws HibernateException, SQLException { Query query = this.this$0.getHibernateTemplate().createQuery(session, 
      this.val$sqlstr);
    List list = new ArrayList();

    if ((this.val$mapps != null) && (!(this.val$mapps.isEmpty()))) {
      Iterator it = this.val$mapps.keySet().iterator();
      while (it.hasNext()) {
        String numStr = (String)it.next();
        int num = Integer.parseInt(numStr);
        query.setParameter(num, this.val$mapps.get(numStr));
      }

    }

    this.this$0.setPageNo(this.val$iPageNo);
    this.this$0.setPageSize(this.val$iPageSize);
    if ((this.val$mapps != null) && (!(this.val$mapps.isEmpty())))
      this.this$0.setQueryPage(query, this.val$mapps);
    else
      this.this$0.setQueryPage(query);

    list = query.list();

    Map map = new HashMap();

    map.put("RecTotal", this.this$0.getRecTotal());
    map.put("PageTotal", this.this$0.getPageTotal());
    map.put("List", list);

    return map;
  }

};
return ((Map)getHibernateTemplate().execute(callback));

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-02-03 14:35
    关注

    服务器端分页用存储过程,hibernate绑定
    参考:http://www.docin.com/p-660794652.html

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿