java query接口_Query接口学习笔记

在Hibernate3.0中废除了find()方法,取而代之的是Query接口

一、绑定参数

1、使用“?”指定参数

通过Query接口可以先设定查询参数,然后通过setXXX()等方法,将指定的参数值填入,而不用每次编写完整的HQL。

Query query = session.createQuery(“from Student s where s.age>? and s.name like ?”)

query.setInteger(0,25);

query.setString(1,”%clus%”);

……………….

2、使用“:“后跟变量的方法设置参数

可以使用命名参数来取代“?“设置参数的方法,这可以不用来依照特定的顺序来设定参数值,比如上面的示例代码也可以写为:

Query query = session.createQuery(“from Student s where s.age>:minAge and s.name like :likeName”)

query.setInteger(minAge,25);

query.setString(likeName,”%clus%”);

………………..

4、setEntity()方法

setEntity()方法把参数与持久化类的示例绑定

Team team = (Team)session.get(Team.class,”aaa565efc767”);

Query query = session.createQuery(“from Student s where s.team>:team”)

query. setEntity(“team”,team);

…………………………..

5、setParameter()方法

setParameter()方法全称是setParameter(String paraName,实例,实例类型),这个方法可以绑定任意类型的参数。如可把上面的改写为:

query.setParameter(“team”,team,Hibernate.entity(Team.class)),其中,Hibernate.entity()指定映射的Hibernate 类型,也可以不要,如:

query.setParameter(“team”,team)

……………..

6、setPropertyies()方法

setPropertyies()的全称是setPropertyies(类实例)。它将类实例的属性名与参数值相对应,如:

Student   stu = new Student();

Stu.setAge(99);

Query query = session.createQuery(“from Student s where s.age=:age”);

query.setProperties(stu);

……………….

二、使用命名查询

可以将HQL语句写在程序之外,以避免硬编码在程序之中,需要的时候可以随时更改,在*.hbm.xml中使用标签,并在之间编写HQL,编写的位置是在节点之后节点之间。如:

/p>

"-//Hibernate/Hibernate Mapping DTD//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

from Student s where s.age>:minAge and s.name like:likeName

]]>

的name属性用来设定查询外部HQL时的名称依据,使用命名查询的源码如下:

Query query = session.getNamedQuery(“namedQueryAgeName”)

query.setInteger(minAge,25);

query.setString(likeName,”%clus%”);

………………..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值