• 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();
  • 相关阅读:
    "《算法导论》之‘图’":不带权二分图最大匹配(匈牙利算法)
    "C#":MySql批量数量导入
    MySql常用操作语句(2:数据库、表管理以及数据操作)
    MySql常用操作语句(1:启动、连接数据库及用户操作)
    HTML 段落
    HTML 标题
    HTML 属性
    HTML 元素
    HTML 基础
    HTML 编辑器
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/8675782.html
Copyright © 2020-2023  润新知