手机版

HQL查询语言的使用

时间:2021-08-01 来源:互联网 编辑:宝哥软件园 浏览:

类型:翻译工具大小:4.4M语言:多国语言[中文]评分:8.3标签:立即下载语句是休眠查询语言的缩写,语法很想SQL,但是语句是一种面向对象的查询语言SQL。的操作对象是数据列、表等数据库对象,而语句操作的是类、实例、属性。

语句查询依赖于询问类,每个询问实例对应一个查询对象,使用语句查询按如下步骤进行:

1.获取休眠会话对象

2.编写语句语句

3.以语句语句作为参数,调用会议的创建查询方法创建查询对象

4.如果语句语句包含参数,则调用询问的setXxx方法为参数赋值

5.调用询问独享的列表()或uniqueResult()方法返回查询结果列表

简单的例子:

@抑制警告(“不赞成”)公共类hibernate util {私有静态最终会话工厂会话工厂;静态{会话工厂=新注释配置().配置()。buildSessionFactory();}公共静态Session getOpenSession(){返回Session工厂。open session();}公共静态会话getCurrentSession(){ return session factory。getCurrentSession();}}

@Entitypublic类员工{私有整数id;私有字符串名称;私人整数年龄;@Id @GeneratedValue公共整数getId(){ 0返回id;} public void SetID(Integer id){ this。id=id} @Basic公共字符串getName(){ 0返回名称;} public void setName(String name){ this。name=name} @ Basic public Integer getAge(){ return age;} public void setAge(整数年龄){ this.age=年龄;} public String ToString(){ return ' id : ' id ' ' ' name : ' name ' ' ' age : ' age;}}

@SuppressWarnings('all ')公共类hql演示{ @ Test public void testHQL(){ Session Session=hibernate util。getopen session();listEmployeeList=会话。createquery('从员工作为e ').list();用于(员工e : employeeList)系统。出去。println(e);} @ Test public voidtesthqlh天冬氨酸参数(){ Session Session=hibernateutil。getopen session();listEmployeeList=会话。createquery('从员工身份e开始,其中e . name=: personal name ').setString('个人姓名','徐建国')。list();用于(员工e : employeeList)系统。出去。println(e);}}HQL查询的从子句:

从是最简单的语句语句,也是最基本的语句语句,来自关键字后紧跟持久化类的类名,如:

来自员工

表名从雇员类中选出全部的实例

不过我们常用的是这样做:

从员工作为e

这个e就是雇员的别名,也就是实例名,推荐这么写。

语句查询的挑选子句:

挑选子句用于选择指定的属性或直接选择某个实体,当然挑选选择的属性必须是从后持久化类包含的属性,如:

从员工中选择电子姓名作为电子

挑选可以选择任意属性,即不仅可以选择持久化类的直接属性,还可以选择组件属性包含的属性,如:

从员工中选择e.name.firstName作为e

语句查询的聚集函数:

聚集函数:

平均值:计算属性的平均值

计数:统计选择对象的数量

最大:统计属性值的最大值

最小值:统计属性值的最小值

总和:计算属性值的总和

如:

从员工中选择计数(*)作为e

@ Test public void testhql函数(){ Session Session=hibernateutil。getopen session();系统。出去。println(会话。createquery('从雇员中选择计数(*)作为e ').uniqueResult());}

多态查询:

语句不仅会查询出该持久化类的全部实例,还会查询出该类的子类的全部实例,前提是存在继承映射。

语句查询的在哪里子句:

在哪里子句主要用于筛选选中的结果,缩小选择的范围,如:

来自员工作为e,其中e的名称如" xjg% "

@ Test public void testHQLWhere(){ Session Session=hibernate util。getopen session();listEmployeeList=会话。createquery('从雇员作为e开始,其中e的名称像周% ').list();用于(员工e : employeeList)系统。出去。println(e);}订购人子句:

查询返回结合可以根据类或组件属性的任何属性进行排序,还可以使用(同美国安全委员会)美国安全委员会或表名关键字指定升序或者降序,如:

员工姓名为表名的订单

子查询:

子查询中就是查询语句中还有查询语句,如:

从员工中选择年龄(从人员中选择年龄)

@ Test public void testHQLChildQuery(){ Session Session=hibernate util。getopen session();列出员工员工列表=会话。createquery('从雇员中选择e,其中e是年龄(从雇员中选择e1,年龄是e1,其中e1.name='徐建国')')。list();用于(员工e : employeeList)系统。出去。println(e);}命名查询:

语句查询还支持将查询所用的语句语句放入配置文件中,而不是代码中,在冬眠映射文件的休眠映射元素中使用询问子元素来定义命名查询,这个询问元素只需指定一个名字属性,指定该命名查询的名字,如:

查询名称="员工查询"作为请求/

会议里提供了一个名称查询(字符串名称)方法,该方法用于创建一个询问对象,一旦获得询问对象,剩下的工作就跟前面的一样了。

@ Test public void testhqlnamed query(){ Session Session=hibernate util。getopen session();list employeeList=会话。getnamedquery(“查询”).list();用于(员工e : employeeList)系统。出去。println(e);}

版权声明:HQL查询语言的使用是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐