Hibernate4.3 HQL查询

HQL:Hibernate专属语言,可以跨数据库

一、基本查询

 1 public void testQuery(){
 2         Session session = HibernateUtils.getSession();
 3         String hql = "from Person";
 4         Query query = session.createQuery(hql);
 5         List<Person> list = query.list();
 6         for(Person p : list){
 7             System.out.println(p);
 8         }
 9         HibernateUtils.close(session);
10     }

  单个属性列查询

1 //查询单个属性
2         String hql = "select p.pname from Person p";
3         Query query = session.createQuery(hql);
4         List<String> list = query.list();

  多个属性查询

1 //查询多列
2         String hql = "select p.id,p.pname from Person p";
3         Query query = session.createQuery(hql);
4         List<Object[]> objArrList = query.list();
5         for(Object[] objArr : objArrList){
6             System.out.println("编号:"+objArr[0]+"   姓名:"+objArr[1]);
7         }

二、Hibernate分页查询

1 Session session = HibernateUtils.getSession();
2         String hql = "from Person";
3         Query query = session.createQuery(hql);
4         //设置分页查询
5         query.setFirstResult(0);
6         query.setMaxResults(5);
7         List<Person> list = query.list();

三、限定查询

String hql = "from Person  where id = ?";
        Query query = session.createQuery(hql);
        query.setParameter(0, 5);
        List<Person> list = query.list();
1 Session session = HibernateUtils.getSession();
2         String hql = "from Person  where id = :id";
3         Query query = session.createQuery(hql);
4         query.setParameter("id", 5);
5         List<Person> list = query.list();

四、统计查询

1 String hql = "select count(*) from Person p";
2         Query query = session.createQuery(hql);
3         Object result =  query.uniqueResult();

五、分组统计查询

1 String hql = "select avg(p.salary),p.pgender from Person p group by p.pgender";
2         Query query = session.createQuery(hql);
3         List<Object[]> objArrList = query.list();

六、投影查询

建立一个业务Bean,在bean提供有参的构造器来接收sql的返回值,创建出对象

七、排序查询

1 String hql = "from Person p order by p.salary desc";
2         Query query = session.createQuery(hql);
3         List<Person> list = query.list();

八、从配置文件中设置查询,然后提取

在 Person.hbm.xml配置文件中
1
<query name="getPerson"> 2 <![CDATA[ 3 from Person p where p.salary > 400 4 ]]> 5 </query>
1 Query query = session.getNamedQuery("getPerson");
2         List<Person> list = query.list();

 

转载于:https://www.cnblogs.com/cat-fish6/p/8674257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值