hql是什么

hql 是hibernate查询语言  hibernate query language 是一种接近sql的查询语言。

完整的HQL语句如下:
Select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc

其中的update/delete为Hibernate3中所新添加的功能。


hql查询

1.查询实体:
List<User>="from User";

【注意】:HQL语句中关键字不区分大小写,但是实体类和对象属性要区分大小写


2.查询其中几列数据返回一个数组
List<Object[]>=" select username,age from User"

可以将多个属性封装成map返回,之后根据key,取到对应的值。eg:map.get(key);
List<Map>=" select new map(username as username,age as age)from User"

3.查询其中几列数据返回一个实体类
List<User>=" select new User(username ,age,sex) from User";//提供合适的构造方法
4.查询单个对象,如果对象不存在则返回null,如果返回值不唯一,则抛出异常。
query.uniqueResult()

5.查询一个list
query.list();

6.hql分页查询:

query.setFirstResult();  //指明开始位置的下标
query.setMaxResults();//指明要提取的条数
 7.hql修改 
"update from User set username='xiaoxiao' where userid=?"
query.executeUpdate();


 8.hql删除
"delete from User  where userid=?"
query.executeUpdate();

9.where、groupby、having和orderby综合使用

hql="SELECT age, COUNT(age) num FROM User WHERE age>10 GROUP BY age HAVING COUNT(age)>1 ORDER BY num DESC";

  在HAVING中,不能使用别名num,但在ORDER BY中可以使用别名num

10.使用?号占位

query.setString(0, value);

 Hibernate和JDBC占位符的区别:在Hibernate占位符下标从0开始,在JDBC中的占位符下标从1开始

11.占位符也可以是 属性名=:变量名
query.setParameter("变量名", value);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值