zoukankan      html  css  js  c++  java
  • Hibernate4.3 QBC查询

    一、基本查询

    1 Session session = HibernateUtils.getSession();
    2         //创建QBC查询接口的实现类
    3         Criteria criteria = session.createCriteria(Person.class);
    4         //查询对象列表
    5         List<Person> personList = criteria.list();

      单个属性的查询

    1 //创建查询接口的实现类
    2         Criteria criteria = session.createCriteria(Person.class);
    3         //获得具体查询的属性
    4         PropertyProjection pp = Projections.property("pname");
    5         //设置具体查询的列
    6         criteria.setProjection(pp);
    7         List<String> nameList = criteria.list();

      多个属性的查询

     1 //创建查询接口的实现类
     2         Criteria criteria = session.createCriteria(Person.class);
     3         //获得具体查询的属性
     4         PropertyProjection pp = Projections.property("pname");
     5         PropertyProjection pp1 = Projections.property("pgender");
     6         //创建要查询列的集合
     7         ProjectionList pList = Projections.projectionList();
     8         pList.add(pp);
     9         pList.add(pp1);
    10         //设置具体查询的列
    11         criteria.setProjection(pList);
    12         List<Object[]> objArrList = criteria.list();

    二、统计查询

      

     1 //创建查询接口的实现类
     2         Criteria criteria = session.createCriteria(Person.class);
     3         //设置要查询统计的属性
     4         AggregateProjection ap = Projections.max("salary");
     5         criteria.setProjection(ap);
     6         Object result = criteria.uniqueResult();
     7         System.out.println(result);
     8         //查询总数
     9         criteria.setProjection(Projections.rowCount());
    10         Object result2 = criteria.uniqueResult();
    11         System.out.println(result2);
    12         //查询平均值
    13         criteria.setProjection(Projections.avg("salary"));
    14         Object result3 = criteria.uniqueResult();
    15         System.out.println(result3);

    三、分组统计查询

     1 //创建查询接口的实现类
     2         Criteria criteria = session.createCriteria(Person.class);
     3         //创建查询项的集合
     4         ProjectionList pl = Projections.projectionList();
     5         //设置要查询的属性
     6         PropertyProjection pp1 = Projections.property("pgender");
     7         AggregateProjection ap = Projections.max("salary");
     8         PropertyProjection pp = Projections.groupProperty("pgender");
     9         pl.add(pp1);
    10         pl.add(ap);
    11         pl.add(pp);
    12         criteria.setProjection(pl);
    13         List<Object[]> objArrList = criteria.list();

    四、排序

    1 Criteria criteria = session.createCriteria(Person.class);
    2         criteria.addOrder(Order.desc("salary"));
    3         List<Person> pList = criteria.list();

    五、分页查询

    1 Criteria criteria = session.createCriteria(Person.class);
    2         //设置分页条件
    3         criteria.setFirstResult(0);
    4         criteria.setMaxResults(3);
    5         List<Person> list = criteria.list();

    六、限定查询

    1 //创建查询接口的实现类
    2         Criteria criteria = session.createCriteria(Person.class);
    3         //创建查询条件
    4         Criterion c = Restrictions.eq("id", 4);
    5         criteria.add(c);
    6         List<Person> list = criteria.list();
    1 //创建查询接口的实现类
    2         Criteria criteria = session.createCriteria(Person.class);
    3         //创建查询条件,默认AND链接
    4         Criterion c = Restrictions.ge("salary", 300);
    5         Criterion c1 = Restrictions.le("salary", 500);
    6         criteria.add(c);
    7         criteria.add(c1);
    8         List<Person> list = criteria.list();
    1 //创建查询接口的实现类
    2         Criteria criteria = session.createCriteria(Person.class);
    3         //创建查询条件
    4         Criterion c = Restrictions.and(Restrictions.ge("salary", 400),Restrictions.eq("pgender", 0));
    5         criteria.add(c);
    6         List<Person> list = criteria.list();

    七、模糊查询

    1 //创建查询接口的实现类
    2         Criteria criteria = session.createCriteria(Person.class);
    3         //创建查询条件
    4         Criterion c = Restrictions.like("pname", "张%");
    5         criteria.add(c);
    6         List<Person> list = criteria.list();
  • 相关阅读:
    2013第51周四开放杂记
    2013第51周三杂记
    2013第51周二eclipse启动优化
    2013 第51周一纠错
    2013第50周日小结
    国内主流开放平台接口了解
    手机加密那点事儿_数值内存加密
    crontab,想说爱你不easy
    SIP基本呼叫
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/8675782.html
Copyright © 2011-2022 走看看