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

批量查询HQL(查询所有、条件查询、占位符、分页、排序、统计、投影)

HQL(Hibernate Query Language)查询:

1、查询所有学生信息:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student";
            Query query= session.createQuery(hql);
            List<Student>list=query.list();
            System.out.println(list);
            transaction.commit();
            session.close();//游离状态
        }

简化写法:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="from Student";
        Query query= session.createQuery(hql);
        List<Student> list=query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

查询所有表的数据:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="from java.lang.Object";
        Query query= session.createQuery(hql);
        List<Object> list=query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

96_1.png

2、条件查询(查询所有的女学生的信息):

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student where sex='女'";
            Query query= session.createQuery(hql);
            List<Student>list=query.list();
            System.out.println(list);
            transaction.commit();
            session.close();//游离状态
        }

96_2.png

3、问号占位符的使用:

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student where studentno=?";
            Query query= session.createQuery(hql);
            query.setInteger(0,937221524);
            Student student= (Student) query.uniqueResult();//获取唯一值
            System.out.println(student);
            transaction.commit();
            session.close();
        }
 public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student where sex=?";
            Query query= session.createQuery(hql);
            //query.setFetchSize(0,"女");
            query.setParameter(0,"女");//通用
            List<Student> list=query.getResultList();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

4、命名占位符:

省去了用数字指明属性位置的麻烦,直接用属性名代替。

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student where sex=:sex";
            Query query= session.createQuery(hql);
            query.setParameter("sex","女");//通用
            List<Student> list=query.getResultList();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

96_3.png

5、分页查询:

需要指明从哪开始,要取几条数据:

  public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            String hql="from pers.zhb.domain.Student where sex=:sex";
            Query query= session.createQuery(hql);
            query.setFirstResult(0);//从0开始
            query.setMaxResults(2);//抓取两条数据
            query.setParameter("sex","女");//通用
            List<Student> list=query.getResultList();
            System.out.println(list);
            transaction.commit();
            session.close();
        }

6、排序查询:

(1)按学号升序排列:

public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="from pers.zhb.domain.Student order by studentno asc";
        Query query= session.createQuery(hql);
        List<Student> list=query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

96_4.png

(2)分数降序:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="from pers.zhb.domain.Student order by point desc ";
        Query query= session.createQuery(hql);
        List<Student> list=query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

96_5.png

7、统计查询:

(1)count:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select count(*) from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        Number number= (Number) query.uniqueResult();
        System.out.println(number);
        transaction.commit();
        session.close();//游离状态
    }

96_6.png

(2)sum求所有学生的分数和:

  public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select sum(point) from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        Number number= (Number) query.uniqueResult();
        System.out.println(number);
        transaction.commit();
        session.close();//游离状态
    }

96_7.png

(3)avg求平均分:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select avg(point) from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        Number number= (Number) query.uniqueResult();
        System.out.println(number);
        transaction.commit();
        session.close();//游离状态
    }

96_8.png

(4)min求最低分:

 public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select min(point) from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        Number number= (Number) query.uniqueResult();
        System.out.println(number);
        transaction.commit();
        session.close();//游离状态
    }

96_9.png

8、投影:

(1)查询每个学生的名字:

public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select sname from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        List list= query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

96_10.png

(2)查询学生的姓名和学号:

创建构造方法(用于存储姓名和学号):

 public Student(Integer studentno,String sname){
        super();
        this.studentno=studentno;
        this.sname=sname;
    }
public static void testSel() {
        Session session = HibernateUtils.openSession();
        Transaction transaction = session.beginTransaction();
        String hql="select new Student(studentno,sname) from pers.zhb.domain.Student";
        Query query= session.createQuery(hql);
        List<Object[]> list= query.list();
        System.out.println(list);
        transaction.commit();
        session.close();//游离状态
    }

96_11.png

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

未经允许不得转载:搜云库技术团队 » 批量查询HQL(查询所有、条件查询、占位符、分页、排序、统计、投影)

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

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

联系我们联系我们