QBC分页查询

public class DetailDaoImpl extends HibernateTemplate implements DetailDaoInterface {

  private Log log=LogFactory.getLog(ConstantsApplication.P2PAPPLICATION_LOG);

/**
 * 查询符合条件的指定区间的记录
 */
 public List<AppInfoPO> queryApproveDetailInfo(ApproveDetailQueryModel qm, int startNumber, int maxNumber) throws APSException {

  log.info("开始查询明细……");
    try{

    DetachedCriteria c = this.getDetachedCriteria(qm);
      return  findByCriteria(c,startNumber,maxNumber);

    } catch (Exception e) {
         log.error("查询明细异常", e);
         throw new APSException("查询明细异常,在方法queryApproveDetailInfo中", e);
     }

}

/**
  * 查询符合条件的记录数
  */
 public int queryApproveDetailInfoCount(ApproveDetailQueryModel qm) throws APSException {

  log.info("开始查询审批明细……");
    DetachedCriteria d = this.getDetachedCriteria(qm);
    d.setProjection(Projections.rowCount());
    List list = this.findByCriteria(d);
    if (list != null && list.size() > 0)
     return Integer.valueOf(list.get(0).toString());
    return 0;

}

/**
 * 创建公共查询条件
 * @param qm
 * @return
 */
 public DetachedCriteria  getDetachedCriteria(ApproveDetailQueryModel qm){
      DetachedCriteria c = DetachedCriteria.forClass(AppInfoPO.class);
          if(!CommonMethod.isNull(qm.getCreditDateisnotnull())){
           c.add(Property.forName("creditDate").isNotNull());
          }

    c.addOrder(Order.asc("creditName"));
      c.addOrder(Order.desc("creditDate")); 
      return c;

}

时间: 2024-08-28 14:05:13

QBC分页查询的相关文章

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询

HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象.其它的,包括一些查询函数(count(),sum()等).查询条件的设定等,全都跟SQL语法一样. 示例: Session session = SessionFactory.getCurrentSession(); User user = null; Transaction ts = s

Hibernate分页查询小结

通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询: 1.QBE(Qurey By Example)检索方式 QBE是最简单的,但是功能也是最弱的,QBE的功能不是特别强大,仅在某些场合下有用.一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象.QBE只支持=和like比较运算符,无法不大区间值,及其或的匹配.在这种情况下,还是采用HQL检索方式或QBC检索方式. Java代码   /** * @function 根据传递过来的Object,

hibernate做分页查询

1.分页查询所需条件(当前页面数 初始化为1,每页显示的数据条数,最大页码数,数据总条数) 2.将所需数据传入后台(pageNum) 查询所有的数据条数(QBC查询) 根据条件查询显示的数据 3.最终显示结果

Oracle分页查询

一.利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行.经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然. SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM XXX t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731',

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo

mybatis中分页查询

1 如果在查询方法中有多个参数,可以使用map对象将所有数据都存储进去.比如分页查询,需要用到两个参数,可以将这两个参数包装到map中. 例子:分页查询 dao层方法 public List<Student> getStudentPage(int pstart, int pnumber) throws Exception{ SqlSession sqlSession = MybatisUtil.getSqlSession(); Map<String,Integer> map = n

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey.也只有使用RowKey查询数据才能得到非常高