Hibernate(4)Criteria查询(单表查询)

 

Criteria  单表查询比较方便

Hibernate自创的无语局面向对象查询

查询所有对象

 /**
     * 查询所有对象
     */
    @Test
    public void test(){
        Session session = HibernateUtils.getCurrentSession();
        Transaction tx = session.beginTransaction();
        Criteria criteria = session.createCriteria(Customer.class);
        List<Customer> list = criteria.list();
        System.out.println(list);
        tx.commit();


    }

条件查询

 /**
     * 条件查询
     * >    gt
     * >=   ge
     * <    lt
     * <=   le
     * ==   eq
     * !=   ne
     * in   in
     * between and    between
     * like     like
     * is not null   isNotNull
     * is null       isNull
     * or        or
     * and   and
     */
    @Test
    public void test1(){
        Session session = HibernateUtils.getCurrentSession();
        Transaction tx = session.beginTransaction();

        //创建criteria查询对象
        Criteria criteria = session.createCriteria(Customer.class);
        //添加查询参数  查询cust_id id为1的custormer对象
        criteria.add(Restrictions.eq("cust_id",1));
        //List<Customer> list = criteria.list();
        Customer c = (Customer) criteria.uniqueResult();

        System.out.println(c);
        tx.commit();


    }

分页查询


    /**
     * 分页查询
     */
    @Test
    public void test2(){
        Session session = HibernateUtils.getCurrentSession();
        Transaction tx = session.beginTransaction();

        //创建criteria查询对象
        Criteria criteria = session.createCriteria(Customer.class);
        //limit ?,?  设置分页信息
        criteria.setFirstResult(1);
        criteria.setMaxResults(4);
        //执行查询
        List<Customer> list = criteria.list();
        //Customer c = (Customer) criteria.uniqueResult();

        System.out.println(list);
        tx.commit();


    }

查询总记录数、

 

 /**
     * 查询总记录数
     */
    @Test
    public void test3(){
        Session session = HibernateUtils.getCurrentSession();
        Transaction tx = session.beginTransaction();

        //创建criteria查询对象
        Criteria criteria = session.createCriteria(Customer.class);
        //设置查询的聚合函数
        criteria.setProjection(Projections.rowCount());
        //执行查询
        Long i = (Long) criteria.uniqueResult();
        //Customer c = (Customer) criteria.uniqueResult();

        System.out.println(i);
        tx.commit();


    }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章