Query接口学习笔记
来源:互联网 发布:佳能打印软件下载 编辑:程序博客网 时间:2024/04/30 09:07
在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中使用<query/>标签,并在<![CDATA[与]]>之间编写HQL,编写的位置是在</class>节点之后</hibername-mapping>节点之间。如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.kissjava.Student" table="student" lazy="true">
<id name="id" unsaved-value="null">
<generator class="uuid.hex"/>
</id>
<property name="name" type="string"/>
<property name="age" type="int"/>
</class>
<!-- 设置命名查询 -->
<query name="namedQueryAgeName"><!-- 此查询被调用的名字 -->
<![CDATA[
from Student s where s.age>:minAge and s.name like:likeName
]]>
</query>
</hibernate-mapping>
<query>的name属性用来设定查询外部HQL时的名称依据,使用命名查询的源码如下:
Query query = session.getNamedQuery(“namedQueryAgeName”)
query.setInteger(minAge,25);
query.setString(likeName,”%clus%”);
………………..
- Query接口学习笔记
- query接口的学习
- Hibernate query 学习笔记
- Hibernate学习笔记--Criteria Query
- Query接口
- Query接口
- hibernate3学习笔记(九)|Query及HQL
- Hibernate学习笔记:用Query作分页
- SqlServer 2005 T-SQL Query 学习笔记
- hibernate3学习笔记(九)|Query及HQL
- ES学习笔记四-Query DSL
- SQL(Structured Query Language)学习笔记
- Java学习笔记(38)-----------Query集合
- dojo 学习笔记之dojo.query - query(id) 与query(class)的区别
- 百灵报表(BIRT)接口学习:执行Cube Query
- hibernate学习之四——Query和Criteria接口
- JPA 学习--Query接口下的 API 测试
- 学习笔记:ServletContext接口
- ASPX页生成静态HTML页(五种方案)
- MFC开发QQ游戏客户端登录界面
- 疑问
- 用javascript代码实现对客户端ip地址的获取
- 利用CSS的Clip属性来创造多彩文字
- Query接口学习笔记
- Javascript之getAttribute()方法 setAttribute()方法
- Compact 命令压缩和解压缩文件
- 也谈Google春运交通图的开发
- 让Linux风暴来的更猛烈些吧!
- MsComm控件在Delphi中的安装!
- Struts 2请求处理流程
- struts2启动tomcat的错误
- 在BREW中打造自己的GUI(4)-IGStatic的实现