<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_11) on Sun Oct 15 22:02:28 CDT 2006 -->
<TITLE>
Index (Hibernate API Documentation)
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="jdstyle.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="Index (Hibernate API Documentation)";
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
PREV
NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html" target="_top"><B>FRAMES</B></A>
<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="org/hibernate/engine/Cascade.html#AFTER_EVICT"><B>AFTER_EVICT</B></A> -
Static variable in class org.hibernate.engine.<A HREF="org/hibernate/engine/Cascade.html" title="class in org.hibernate.engine">Cascade</A>
<DD>A cascade point that occurs just after eviction of the parent entity from the
session cache
<DT><A HREF="org/hibernate/engine/Cascade.html#AFTER_INSERT_BEFORE_DELETE"><B>AFTER_INSERT_BEFORE_DELETE</B></A> -
Static variable in class org.hibernate.engine.<A HREF="org/hibernate/engine/Cascade.html" title="class in org.hibernate.engine">Cascade</A>
<DD>A cascade point that occurs just after the insertion of the parent entity and
just before deletion
<DT><A HREF="org/hibernate/engine/Cascade.html#AFTER_INSERT_BEFORE_DELETE_VIA_COLLECTION"><B>AFTER_INSERT_BEFORE_DELETE_VIA_COLLECTION</B></A> -
Static variable in class org.hibernate.engine.<A HREF="org/hibernate/engine/Cascade.html" title="class in org.hibernate.engine">Cascade</A>
<DD>A cascade point that occurs just after the insertion of the parent entity and
just before deletion, inside a collection
<DT><A HREF="org/hibernate/engine/Cascade.html#AFTER_LOCK"><B>AFTER_LOCK</B></A> -
Static variable in class org.hibernate.engine.<A HREF="org/hibernate/engine/Cascade.html" title="class in org.hibernate.engine">Cascade</A>
<DD>A cascade point that occurs just after refreshing a parent entity
<DT><A HREF="org/hibernate/ConnectionReleaseMode.html#AFTER_STATEMENT"><B>AFTER_STATEMENT</B></A> -
Static variable in class org.hibernate.<A HREF="org/hibernate/ConnectionReleaseMode.html" title="class in org.hibernate">ConnectionReleaseMode</A>
<DD>Indicates that JDBC connection should be aggressively released after each
SQL statement is executed.
<DT><A HREF="org/hibernate/ConnectionReleaseMode.html#AFTER_TRANSACTION"><B>AFTER_TRANSACTION</B></A> -
Static variable in class org.hibernate.<A HREF="org/hibernate/ConnectionReleaseMode.html" title="class in org.hibernate">ConnectionReleaseMode</A>
<DD>Indicates that JDBC connections should be released after each transaction
ends (works with both JTA-registered synch and HibernateTransaction API).
<DT><A HREF="org/hibernate/engine/Cascade.html#AFTER_UPDATE"><B>AFTER_UPDATE</B></A> -
Static variable in class org.hibernate.engine.<A HREF="org/hibernate/engine/Cascade.html" title="class in org.hibernate.engine">Cascade</A>
<DD>A cascade point that occurs just after update of the parent entity
<DT><A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html#AGGREGATE"><B>AGGREGATE</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">HqlSqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/HqlTokenTypes.html#AGGREGATE"><B>AGGREGATE</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/HqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">HqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html#AGGREGATE"><B>AGGREGATE</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">SqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html#ALIAS"><B>ALIAS</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">HqlSqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/HqlTokenTypes.html#ALIAS"><B>ALIAS</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/HqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">HqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html#ALIAS"><B>ALIAS</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">SqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html#ALIAS_REF"><B>ALIAS_REF</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/HqlSqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">HqlSqlTokenTypes</A>
<DD>
<DT><A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html#ALIAS_REF"><B>ALIAS_REF</B></A> -
Static variable in interface org.hibernate.hql.antlr.<A HREF="org/hibernate/hql/antlr/SqlTokenTypes.html" title="interface in org.hibernate.hql.antlr">SqlTokenTypes</A>
<DD>
<DT><A
Hibernate API.rar
需积分: 0 177 浏览量
更新于2009-09-03
收藏 6.2MB RAR 举报
《深入理解Hibernate API》
Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。它通过提供一套丰富的API,使得开发人员能够以面向对象的方式处理数据库交互,从而降低了数据库编程的复杂性。本篇文章将深度剖析Hibernate API的核心概念和使用方法。
一、Hibernate体系结构
Hibernate主要由Session、SessionFactory和Configuration三个核心组件构成。SessionFactory是线程安全的,用于创建Session实例,而Session则代表了与数据库的一次会话,它是所有数据库操作的入口点。Configuration则负责配置和初始化SessionFactory。
二、配置Hibernate
在使用Hibernate之前,我们需要通过Configuration类来配置Hibernate。这通常涉及设置数据库连接信息、加载映射文件等。例如,我们可以通过`configure()`方法加载hibernate.cfg.xml配置文件,然后使用`buildSessionFactory()`生成SessionFactory。
三、实体和映射
在Hibernate中,实体类对应数据库中的表,实体类的属性对应表中的字段。通过使用注解或XML文件进行映射,我们可以指定数据库表名、字段名以及类型等信息。例如,使用`@Entity`定义实体类,`@Table`指定表名,`@Column`标注字段。
四、Session操作
Session提供了多种数据库操作接口,如:保存(save())、更新(update())、删除(delete())、加载(get())和查询(createQuery()、createSQLQuery())。此外,Session还支持事务管理,使用begin()开启事务,commit()提交事务,rollback()回滚事务。
五、Criteria查询
除了传统的HQL(Hibernate Query Language)查询,Hibernate还提供了Criteria API,它允许动态构建查询条件,更加灵活。Criteria API包括DetachedCriteria,用于创建可重用的查询条件,以及Criteria,用于执行实际的查询。
六、Hibernate缓存
为了提高性能,Hibernate提供了两级缓存机制:一级缓存是Session级别的,每个Session有自己的缓存;二级缓存是SessionFactory级别的,可以跨Session共享。我们还可以配置第三方缓存提供商,如Ehcache,进一步优化性能。
七、实体关系映射
Hibernate支持多种关系映射,包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。通过注解或XML配置,我们可以定义实体之间的关联关系,例如,使用`@OneToOne`、`@OneToMany`等。
八、延迟加载和懒加载
延迟加载(Lazy Loading)是Hibernate的一个重要特性,它意味着关联对象只有在真正需要时才会被加载。例如,使用`@ManyToOne(fetch = FetchType.LAZY)`可以实现懒加载,避免了不必要的数据库查询。
九、事件监听和拦截器
Hibernate提供了一套事件监听机制,允许我们在特定的数据库操作前后执行自定义逻辑。同时,拦截器(Interceptor)提供了更细粒度的控制,可以在Session级别的操作前、后,甚至每个单独的持久化操作前后执行代码。
十、性能优化
优化Hibernate应用涉及到多个方面,包括合理设计数据库表结构、选择合适的查询方式、使用缓存、避免N+1查询问题、减少对象状态的转换等。理解和熟练掌握Hibernate API,有助于我们在开发过程中做出正确的决策,提高应用程序的性能。
Hibernate API是Java开发人员处理数据库操作的强大工具,通过深入理解并熟练运用其各项功能,我们可以构建出高效、易于维护的数据库驱动的应用程序。无论是初学者还是经验丰富的开发者,都应该对Hibernate API有深入的了解,以便更好地利用它来提升开发效率和软件质量。
severusz
- 粉丝: 12
- 资源: 47
最新资源
- zigbee CC2530无线自组网协议栈系统代码实现协调器与终端基于GenericApp的无线收发例程.zip
- zigbee CC2530无线自组网协议栈系统代码实现协调器与终端无线收发控制LED灯.zip
- zigbee CC2530无线自组网协议栈系统代码实现协调器与终端之间的数据相互收发.zip
- zigbee CC2530无线自组网协议栈系统代码实现协议捕捉与数据分析.zip
- zigbee CC2530无线自组网协议栈系统代码实现终端采集光敏传感器并发给协调器串口输出.zip
- zigbee CC2530无线自组网协议栈系统代码实现终端采集气体传感器值发给协调器并串口打印.zip
- zigbee CC2530无线自组网协议栈系统代码实现终端采集人体红外热释电传感器发送给协调器并串口输出.zip
- 功能完善的小说CMS系统项目全套技术资料.zip
- zigbee CC2530无线自组网协议栈系统代码实现终端采集温度传感器DS18B20发送给协调器并串口打印输出.zip
- 食物营养分析-java-基于 SpringBoot 的食物营养分析与推荐网站的设计与实现(毕业论文)
- zigbee CC2530无线自组网协议栈系统代码实现终端采集温湿度传感器DHT11并发给协调器并串口打印输出.zip
- zigbee CC2530无线自组网协议栈系统的RemoTI源码.zip
- zigbee CC2530无线自组网协议栈系统之新建自己的Zstack工程模板(协调器、终端、路由器).zip
- 宠物救助及领养-java-基于springBoot的宠物救助及领养平台的设计与实现(毕业论文)
- 从基础到高级:Rust语言教程与编程实战
- 城市公交查询-java-基于springBoot的城市公交查询系统设计与实现(毕业论文)