专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

批量查询Criteria(查询所有、条件、分页、统计(聚合函数)、排序、Criteria 和与DetachedCriteria)

1、查询所有的学生信息:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Criteria criteria=session.createCriteria(Student.class);
            List<Student>list= criteria.list();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

96_1.png

2、条件查询:

运算符与对应的英文缩写:

gt  >=ge  <lt  <=le  ==eq

!=ne  in:in  between and::between

like:like  is not null:isNotNull  

or:or  and:and

(1)eq的运用:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Criteria criteria=session.createCriteria(Student.class);
            criteria.add(Restrictions.eq("sex","女"));
            List<Student>list= criteria.list();
            System.out.println(list);
            transaction.commit();
            sessio

96_2.png

(2)like的运用:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Criteria criteria=session.createCriteria(Student.class);
            criteria.add(Restrictions.like("sname","许__"));
            List<Student>list= criteria.list();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

96_3.png

3、分页查询:

需要事先设置起始位置和查询的数量。

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Criteria criteria=session.createCriteria(Student.class);
            criteria.add(Restrictions.eq("sex","女"));
            criteria.setFirstResult(1);
            criteria.setMaxResults(2);
            List<Student>list= criteria.list();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

96_4.png

4、总记录数的获取:

 public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Criteria criteria=session.createCriteria(Student.class);
            criteria.setProjection(Projections.rowCount());//聚合函数获得总行数
            Long rowNum= (Long) criteria.uniqueResult();
            System.out.println(rowNum);
            List<Student>list= criteria.list();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

96_5.png

5、排序:

升序:

public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        Criteria criteria=session.createCriteria(Student.class);
        criteria.addOrder(Order.asc("studentno"));
        List<Student>list= criteria.list();
        System.out.println(list);
        transaction.commit();
        session.close();
    }

96_6.png

降序:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        Criteria criteria=session.createCriteria(Student.class);
        criteria.addOrder(Order.desc("studentno"));
        List<Student>list= criteria.list();
        System.out.println(list);
        transaction.commit();
        session.close();
    }

96_7.png

5、Criteria 和 DetachedCriteria的区别

Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需Session。

例如下面的条件查询代码写在servlet中,没有与session进行连接:

 String cust_name = request.getParameter("cust_name");
        DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
        if(cust_name!=null && !"".equals(cust_name)){
            dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
        }

文章永久链接:https://tech.souyunku.com/23155

未经允许不得转载:搜云库技术团队 » 批量查询Criteria(查询所有、条件、分页、统计(聚合函数)、排序、Criteria 和与DetachedCriteria)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们