qbc查询

作者: exmexm | 来源:发表于2017-07-16 16:24 被阅读0次

    使用qbc查询时和hql的差别是:qbc不需要写查询语句,而是直接调用方法实现查询。而hql是通过Query对象实现的,而qbc则是通过Criteria对象实现的。

    1、查询所有

    首先创建Criteria对象
    调用方法获得查询结果

    2、条件查询和顺序查询以及分页查询实现

    图片.png 图片.png 图片.png

    代码实现如下:

                ts = session.beginTransaction();
                Criteria ct = session.createCriteria(User.class);
                List<User> list = ct.list();
                for (User user : list) {
                    System.out.println(user.toString());
                }
                ct.addOrder(Order.asc("username"));
                ct.add(Restrictions.like("username", "w%"));
                System.out.println(ct.list());
                ts.commit();
            } catch (Exception e) {
                ts.rollback();
                e.printStackTrace();
            }
    

    3、离散查询和聚集函数查询

    和hql的聚集函数cuont不一样的是。hql要先转换为Long才可以转换为Int,qbc可以直接转为Integer。

    try {
                ts = session.beginTransaction();
                Criteria ct = session.createCriteria(User.class);
                List<User> list = ct.list();
                for (User user : list) {
                    System.out.println(user.toString());
                }
                ct.addOrder(Order.asc("username"));
                ct.add(Restrictions.like("username", "w%"));
                System.out.println(ct.list());
                Criteria ct1 = session.createCriteria(User.class);
                ct1.setProjection(Projections.rowCount());
                Object result = ct1.uniqueResult();
                int resultAll = (int)result;
                System.out.println(resultAll);
                ts.commit();
            } catch (Exception e) {
                ts.rollback();
                e.printStackTrace();
            }
    
    图片.png

    相关文章

      网友评论

          本文标题:qbc查询

          本文链接:https://www.haomeiwen.com/subject/vlntkxtx.html