- 浏览: 1483430 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
1、对象导航查询,在hql中采用 . 进行导航【重要】
参见:ObjectNavQueryTest.java
List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
String name = (String)iter.next();
System.out.println(name);
}
2、外置命名查询
* 在映射文件中采用<query>标签来定义hql
* 在程序中采用session.getNamedQuery()方法得到hql查询串
参见:Student.hbm.xml、NameQueryTest.java
List students = session.getNamedQuery("searchStudents")
.setParameter(0, 10)
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Student student = (Student)iter.next();
System.out.println(student.getName());
}
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="createTime"/>
<many-to-one name="classes" column="classesid"/>
<filter name="filtertest" condition="id < :myid"/>
</class>
<query name="searchStudents">
<![CDATA[
SELECT s FROM Student s where s.id<?
]]>
</query>
<filter-def name="filtertest">
<filter-param name="myid" type="integer"/>
</filter-def>
</hibernate-mapping>
3、连接查询【重要】
* 内连
* 外连接(左连接/右连接)
参见:JoinQueryTest.java
List students = session.createQuery("select c.name, s.name from Student s inner join s.classes c").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
===
List students = session.createQuery("select c.name, s.name from Classes c left join c.students s").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
===
List students = session.createQuery("select c.name, s.name from Classes c right join c.students s").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
4、
for(int i=0; i<10; i++){
Classes classes = new Classes();
classes.setName("班级"+i);
session.save(classes);
for(int j=0; j<10; j++){
Student student = new Student();
student.setName("班级"+i+"的学生"+j);
student.setCreateTime(randomDate("2008-01-01","2008-03-01"));
//在内存中建立由student指向classes的引用
student.setClasses(classes);
session.save(student);
}
}
for(int i=0; i<5; i++){
Classes classes = new Classes();
classes.setName("无学生班级"+i);
session.save(classes);
}
for(int i=0; i<10; i++){
Student student = new Student();
student.setName("无业游民"+i);
session.save(student);
}
发表评论
-
自定义用户类(UserType)的使用
2011-08-04 10:46 1820学习hibernate有段时间了,最近复习这门技术时看到了自定 ... -
技巧:利于ThreadLocal模式管理Session
2011-08-02 10:31 1244在利用Hibernate开发DAO模块时,我们和Session ... -
Hibernate中的回调与拦截机制
2011-07-27 17:31 1440在某些情况下,我们需要对实体的CURD操作进行捕获并执行一些操 ... -
HibernateTemplate中HibernateCallback的事务
2011-07-04 14:41 1418目的:使用HibernateTemplate执行execute ... -
Hibernate的复杂用法HibernateCallback
2011-07-04 14:40 1301HibernateTemplate还提供一种更加灵活的方式来操 ... -
Hibernate session FlushMode有五种属性
2011-07-04 13:59 16991、NEVER:已经废弃了,被MANUAL取代了2 MANUA ... -
数据库持久层——浅谈hibernate中的Session
2011-07-01 22:49 1643大多数情况下,Session 管理的目标聚焦于通过合理的设 ... -
详解Hibernate Session
2011-07-01 22:42 1468这里介绍Hibernate Session,Ses ... -
HttpSession与Hibernate中Session的区别
2011-07-01 22:41 1253一、javax.servlet.http.HttpSess ... -
巧用SQLQuery中的addScalar
2011-06-02 17:16 5714当我们用HQL进行子查询的时候,如select * from ... -
hibernate中SQLQuery的addEntity();方法
2011-04-13 14:48 2871如果使用原生sql语句进行query查询时,hibernate ... -
Hibernate的clear(),flush(),evict()方法详解
2011-03-24 11:18 17411.Clear 方法 无论是Load 还是 G ... -
hibernate模糊查询-Restrictions.ilike & Expression.like
2011-03-11 10:32 16333Criteria criteria = session.c ... -
Hibernate分页查询小结
2011-03-10 11:14 1808通常使用的Hibernate通常是三种:hql查询,QBC查询 ... -
current_session_context_class
2011-03-07 15:31 1266此设置的作用如下: What does sessionFac ... -
Hibernate的拦截器和监听器
2010-12-14 15:06 1365核心提示:最近项目需要,用到了Hibernate的拦截器和 ... -
孙卫琴.精通Hibernate:Java对象持久化技术详解_触发器使缓存与数据库不一致
2010-12-14 08:46 1358p198 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_优化报表查询的性能
2010-12-13 17:51 1253p332 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_查询结果类型
2010-12-13 17:34 1283p329 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_投影查询
2010-12-13 17:31 1389p325
相关推荐
一个关于Hibernate-HQL 的文档 内容实际而且实用
3. Query与Criteria API:这两个API提供了执行数据库查询的方式,Query基于HQL(Hibernate查询语言),Criteria API则提供了一种类型安全的查询方式。 4. Transaction:事务处理接口,Hibernate提供了JTA和JDBC两种...
6. 高级查询:提供HQL(Hibernate Query Language)和 Criteria API,支持复杂的查询操作。 五、与`hibernate-2.1.8-all-bin_a.rar`的合并使用 既然提到"hibernate-2.1.8-all-bin_b.rar"与"hibernate-2.1.8-all-...
4. **lib**:这个目录包含了Hibernate运行所需的第三方库,包括JDBC驱动、日志库、容器依赖等。理解这些库的作用和配置,有助于解决在项目集成过程中可能出现的问题。 Hibernate 3.2.6版本主要特点包括: - 支持JPA...
对hibernate的hql进行了详尽的讲解
hibernate查询语句--HQL hibernate查询语句--HQL
3. **查询语言HQL与Criteria API**:`Query`与`Criteria`接口提供了灵活的查询方式,源码中可看到它们如何解析HQL语句,并转化为SQL执行。 4. **第二级缓存**:Hibernate支持缓存策略,其中第二级缓存由`Cache`接口...
Hibernate 3.1.2是一个稳定且广泛使用的版本,它引入了许多新特性,包括支持JPA(Java Persistence API)、优化的HQL(Hibernate Query Language)以及对JDBC 3.0和JTA(Java Transaction API)的改进。通过Eclipse...
java数据库架构hibernate 专用语句hql的相关代码与试验
4. **Criteria查询**:除了传统的HQL(Hibernate Query Language)查询,3.6.6版本还提供了Criteria API,这是一种更加面向对象的查询方式,可以动态构建查询条件,增强了代码的可读性和灵活性。 5. **实体生命周期...
此外,HQL(Hibernate Query Language)也得到了增强,支持更多的函数和操作,提供了更强大的查询能力。 其次,4.0.0.Final版本增强了对JPA 2.0规范的支持,包括实体生命周期管理、查询注解、事务管理等方面。...
- 构造查询条件:在DAO层,根据当前页和每页记录数构造分页SQL或HQL(Hibernate查询语言)。 - 执行查询:使用Hibernate Session执行分页查询。 - 返回结果:将查询结果包装成业务对象或列表,传回给控制器和视图...
- Criteria查询增强:允许更复杂的动态查询构建,超越了HQL(Hibernate查询语言)的限制。 - Cache管理:提供更细粒度的缓存控制,包括第二级缓存和查询缓存的优化。 - Batch处理:支持批量插入、更新和删除操作...
Hibernate_HQL大全
Hibernate支持使用EJBQL/HQL进行查询映射,以及本地化查询,使你能方便地进行对象查询。 4. **Hibernate独有的注解扩展** Hibernate提供了一些特有的注解,如`@Access`定义属性访问方式,`@Formula`用于定义计算...
3. Query与Criteria:提供了两种查询方式,HQL(Hibernate Query Language)是一种面向对象的查询语言,类似于SQL;Criteria API则提供了更动态、更面向对象的查询方式。 三、实体管理 Hibernate通过@Entity注解...
5. Query与Criteria API:提供了强大的查询功能,可以编写复杂的SQL语句,并支持HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)。 三、实体类与映射文件 在Hibernate中,每个数据库表...
三、Hibernate Annotations 3.4.0.GA新特性 1. 支持JPA 2.0规范:此版本引入了更多的JPA标准注解,如@Inheritance、@SequenceGenerator等,增强了与Java Persistence API的兼容性。 2. 性能优化:3.4.0.GA版本针对...
《精通Java_EE项目案例-基于Eclipse_Spring_Struts_Hibernate案例》是针对Java企业级开发的一个深度学习资源,涵盖了从第六章到第十章的关键案例。这些章节通常会涉及实际应用开发中的核心技术和实践,旨在帮助...
在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...