- 浏览: 253976 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
B/S结构下套打票据实现 - Lodop打印组件 -
iTarget:
原原文::http://blog.csdn.net/steve ...
加减乘除的问题 - BigDecimal -
iTarget:
原文:http://blog.csdn.net/gqm1982 ...
加减乘除的问题 - BigDecimal -
iTarget:
在Java中,要想实现精确计算,解决方案是使用BigDecim ...
加减乘除的问题 - BigDecimal -
叶寒_:
...
JSP简单标签
<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->
<!-- [if !supportLists]-->第 I 条 <!-- [endif]-->HQL 查询策略
<!-- [if !supportLists]-->节 1.01 <!-- [endif]-->基本查询
以下是 HQL/QBC/Native SQL 三种查询策略
HQL 策略:
session.createQuery( "FROM Category c where c.name like 'Laptop%'" );
QBC 策略:
session.createCriteria(Category . class ).add(Restrictions.like ( "name" , "Laptop%" ));
Native SQL 策略
session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like 'Laptop%'" ).addEntity( "c" ,Category . class );
<!-- [if !supportLists]-->节 1.02 <!-- [endif]-->子查询
String hql = "SELECT user.username,user.password FROM UserInfo user WHERE user.username = (SELECT info.username FROM UserInfo info)" ;
<!-- [if !supportLists]-->节 1.03 <!-- [endif]-->分页查询
Query query = session.createQuery( "FROM Category c where c.name like 'Laptop%'" );
query.setMaxResults(10);
<!-- [if !supportLists]-->节 1.04 <!-- [endif]-->参数绑定
Query query = session.createQuery( "FROM Category c where c.name like :name" );
query.setParameter( "name" , "top" );
Query query = session.createQuery( "FROM Category c where c.name like ?" );
query.setParameter( 0 , "top" );
<!-- [if !supportLists]-->节 1.05 <!-- [endif]-->批量抓取 / 查询超时
query.setTimeout(60); // 查询超时
query.setFetchSize(50); // 批量抓取
<!-- [if !supportLists]-->节 1.06 <!-- [endif]-->查询结果
<!-- [if !supportLists]-->(a) <!-- [endif]-->List/Iterator
List list = query.list();
生成 sql:select category_id,name,parent_id from category where name like ?
Iterator categories = query.iterate();
生成 sql:select category_id,from category where name like ?
使用 iterate() 查询时将对象加载到高速缓存中,所以效率较 list() 要高 , 但提升性能不大。
<!-- [if !supportLists]-->(b) <!-- [endif]-->ScrollableResult 游标
在 Hibernate 查询时可能存在结果集太大无法载入内存的问题,可以阐释使用可滚动结果集 scrollable result 这种方法获取所需要的数据。
ScrollableResults cusor = session.createQuery( "FROM Category c" ).scroll();
while (cusor.next()){cusor.get();}
<!-- [if !supportLists]-->第 II 条 <!-- [endif]-->QBC/QBE 查询策略
<!-- [if !supportLists]-->节 2.01 <!-- [endif]-->基本查询
以下是 HQL/QBC/Native SQL 三种查询策略
HQL 策略:
session.createQuery( "FROM Category c where c.name like 'Laptop%'" );
QBC 策略:
session.createCriteria(Category . class ).add(Restrictions.like ( "name" , "Laptop%" ));
Native SQL 策略
session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like 'Laptop%'" ).addEntity( "c" ,Category . class );
<!-- [if !supportLists]-->节 2.02 <!-- [endif]-->分页查询
Criteria criteria = session.createCriteria(Category . class ).add(Restrictions.like ( "name" , "Laptop%" ));
criteria.addOrder(Order.asc ( "name" ));
criteria.setFirstResult(0); // 初始行数
criteria.setMaxResults(20); // 每页显示行数
<!-- [if !supportLists]-->节 2.03 <!-- [endif]-->参数绑定
Criteria criteria = session.createCriteria(Category . class ).add(Restrictions.like ( "name" , "top%" ));
<!-- [if !supportLists]-->节 2.04 <!-- [endif]-->批量抓取 / 查询超时
criteria.setTimeout(60);
criteria.setFetchSize(50);
<!-- [if !supportLists]-->节 2.05 <!-- [endif]-->查询结果
<!-- [if !supportLists]-->(a) <!-- [endif]-->List/Iterator
List list = criteria .list();
生成 sql:select category_id,name,parent_id from category where name like ?
Iterator categories = criteria .iterate();
生成 sql:select category_id,from category where name like ?
使用 iterate() 查询时将对象加载到高速缓存中,所以效率较 list() 要高 , 但提升性能不大。
<!-- [if !supportLists]-->(b) <!-- [endif]-->ScrollableResult 游标
在 Hibernate 查询时可能存在结果集太大无法载入内存的问题,可以阐释使用可滚动结果集 scrollable result 这种方法获取所需要的数据。
ScrollableResults cusor = criteria.scroll();
while (cusor.next()){cusor.get();}
<!-- [if !supportLists]-->第 III 条 <!-- [endif]-->原生 SQL 查询策略
<!-- [if !supportLists]-->节 3.01 <!-- [endif]-->基本查询
以下是 HQL/QBC/Native SQL 三种查询策略
HQL 策略:
session.createQuery( "FROM Category c where c.name like 'Laptop%'" );
QBC 策略:
session.createCriteria(Category . class ).add(Restrictions.like ( "name" , "Laptop%" ));
Native SQL 策略
session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like 'Laptop%'" ).addEntity( "c" ,Category . class );
<!-- [if !supportLists]-->节 3.02 <!-- [endif]--> 分页查询
Query sqlQuery = session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like 'Laptop%'" ).addEntity( "c" ,Category . class );
sqlQuery.setFirstResult(0); // 初始行数
sqlQuery.setMaxResults(20); // 每页显示行数
<!-- [if !supportLists]-->节 3.03 <!-- [endif]-->参数绑定
Query sqlQuery = session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like :name" ).addEntity( "c" ,Category . class );
sqlQuery.setParameter( "name" , "top" );
Query sqlQuery = session.createSQLQuery( "select {c.*} from CATEGORY {c} where NAME like ?" ).addEntity( "c" ,Category . class );
query.setParameter( 0 , "top" );
<!-- [if !supportLists]-->节 3.04 <!-- [endif]-->批量抓取 / 查询超时
sqlQuery.setTimeout(60); // 查询超时
sqlQuery.setFetchSize(50); // 批量抓取
<!-- [if !supportLists]-->节 3.05 <!-- [endif]-->查询结果
<!-- [if !supportLists]-->(a) <!-- [endif]-->List/Iterator
List list = sqlQuery .list();
生成 sql:select category_id,name,parent_id from category where name like ?
Iterator categories = sqlQuery .iterate();
生成 sql:select category_id,from category where name like ?
使用 iterate() 查询时将对象加载到高速缓存中,所以效率较 list() 要高 , 但提升性能不大。
<!-- [if !supportLists]-->(b) <!-- [endif]-->ScrollableResult 游标
在 Hibernate 查询时可能存在结果集太大无法载入内存的问题,可以阐释使用可滚动结果集 scrollable result 这种方法获取所需要的数据。
ScrollableResults cusor = session.createQuery( "FROM Category c" ).scroll();
while (cusor.next()){cusor.get();}
发表评论
-
HIbernate 缓存
2009-04-02 16:48 1472节 13.01 缓存类型 1、 事务范围缓存:添 ... -
Hibernate QBC语言
2009-03-27 15:14 4866节 8.01 基本查询 以 ... -
Hibernate HQL语言
2009-03-26 16:01 8422HQL查询 节 10.01 单表HQL查询 FROM C ... -
HIbernate 大批量数据处理
2009-03-25 17:11 2858节 1.01 -
Hibernate乐观锁控制
2009-03-24 17:00 11211、 -
Hibernate控制事务并发访问
2009-03-24 16:28 1603(a) -
Hibernate的Java SE事务
2009-03-24 15:26 11051、在Hibernate的配置文件中添加以下内容: < ... -
Hibernate 一对一延迟加载
2009-03-24 14:38 1746当主外键为同一字段时可以使用一对一的延迟加载 ... -
Hibernate的继承策略
2009-03-23 17:15 1494... -
Hibernate的集合映射
2009-03-23 17:13 1085... -
Hibernate持久化上下文
2009-03-23 17:10 1268持久化上下文作用 : -
Hibernate托管对象
2009-03-23 16:41 30811、 -
Hibernate 一对多关联
2007-08-14 14:44 1178java 代码 CREATE TABLE PERS ... -
HibernateSessionFactory 工具类
2007-07-31 17:37 6913java 代码 public class ... -
Hibernate 多对多关联
2007-07-31 17:36 1491xml 代码 CREATE TABLE GROUP ... -
Hibernate 一对一关联
2007-07-31 17:34 1129xml 代码 CREATE TABLE CUST ... -
Hibernate 一对一关联 (多对一的曲线实现)
2007-07-31 17:32 1619xml 代码 CREATE TABLE AUTHO ... -
Hibernate 多对一关联
2007-07-31 17:30 1254xml 代码 CREATE TABLE CUST ...
相关推荐
标题:“HIBERNATE检索策略” 描述:本文深入解析了HIBERNATE的检索策略,为读者提供了一条清晰的学习路径,重点分析了HIBERNATE中的抓取策略及其应用场景,帮助开发者更有效地管理和优化数据加载过程。 在...
在Java的持久化框架Hibernate中,主键策略是管理数据库记录唯一标识的重要组成部分。主键策略定义了如何生成和管理实体对象的主键值。在本篇内容中,我们将深入探讨"Hibernate主键策略-sequence",并结合标签中的...
【hibernate查询详解】 Hibernate,作为一款强大的Java对象...而分页查询是大数据量场景下的常用策略,Hibernate提供了简单的API来实现。理解并熟练掌握这些查询方式,将有助于我们在Java开发中更好地运用Hibernate。
- **性能优化**:合理设计查询语句和缓存策略,减少不必要的数据库交互次数,提高系统响应速度。 - **异常处理**:妥善处理可能出现的各种异常情况,增强系统的健壮性和稳定性。 以上就是关于Struts+Hibernate查询...
### 常用Hibernate主键生成策略详解 #### 一、引言 在数据库设计与操作过程中,主键是确保数据唯一性的关键要素之一。在实际应用中,开发者经常需要处理不同类型的数据库,并且需要应对各种不同的主键生成需求。...
关于Hibernate的各种主键生成策略与配置详解
在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...
在Java的持久化框架Hibernate中,数据访问优化是至关重要的,而抓取策略(Fetch Strategy)和懒加载(Lazy Loading)则是实现这一目标的关键技术。本文将深入探讨这两个概念,并通过具体的案例进行分析。 首先,让...
本文将深入探讨Hibernate的缓存策略,包括一级缓存、二级缓存以及查询缓存,并结合源码分析其工作原理。 ### 一级缓存 一级缓存是Hibernate默认开启的缓存,也称为Session缓存。每当我们在Session中进行持久化操作...
【hibernate主键生成策略】是Hibernate框架中用于生成持久化对象主键的重要机制,它决定了如何在数据库中创建唯一的标识符。在SSH(Spring、Struts、Hibernate)架构中,Hibernate作为持久层框架,主键生成策略的...
Hibernate缓存原理及调优策略 Hibernate缓存原理调优策略
标题“hibernate的多态查询”指的是在Hibernate框架中,如何进行涉及不同子类的对象查询,这是ORM(对象关系映射)中的一个重要特性,旨在提高代码的灵活性和可扩展性。多态查询允许我们编写一次查询,而无需关心...
在Java的持久化框架Hibernate中,ID生成策略是至关重要的一个环节。它是用来唯一标识数据库中每一行记录的关键部分。本教程将详细讲解Hibernate中的ID生成策略,以及如何在实际项目中灵活应用。 首先,ID生成策略是...
综上所述,通过合理设计实体关系,使用HQL或Criteria API,结合数据库特性和缓存策略,我们可以有效地在Hibernate中实现递归查询,处理树形结构数据。理解递归查询的原理并掌握其实践技巧,对于提升Java企业级应用的...
通过以上分析可以看出,Hibernate在实现分页查询时考虑到了多种情况,并通过不同的策略实现了对不同数据库的支持。无论是基于LIMIT的分页还是基于ROWNUM的分页,Hibernate都能够很好地适配并提供高效的查询性能。...
2. **Lazy Loading**: 默认情况下,Hibernate采用懒加载策略,只有在实际访问关联对象时才会发起数据库查询。这有助于提高性能,因为不是所有的关联数据都立即加载。 3. **Eager Loading**: 相反于懒加载,急加载会...
在深入探讨Hibernate查询缓存之前,我们先了解一下Hibernate的基础概念。Hibernate是一个强大的Java持久化框架,它简化了数据库操作,提供了对象关系映射(ORM)功能。在Hibernate中,对象的状态分为瞬时态、持久态...