`

Hibernate学习笔记之基本概念

    博客分类:
  • J2EE
阅读更多

1.       实体域对象:通常实体域对象与数据库表中的记录对应,可以为每个实体域对象分配唯一的一个OID(Object Identifier 对象标帜符),OID是关系数据库的主键,通常是代理主键在实体域对象中的等价物。

2.       过程域对象:

3.       事件域对象:由系统中其他功能所出发的异常、警告或超时等信息。

4.       关联(Association):关联指的是类之间的引用关系,是实体域对象之间最普遍的一种关系,关联可以分为一对一、一对多和多对多。

5.       依赖(Dependency):指的是类之间的访问关系,如果A类访问B类的属性和方法,或者A类负责实例化B类,可以说A类依赖B类,和关联关系不同,无需把B类定义为A类的属性。依赖在实体域对象之间是不常见的,但是过程域对象往往依赖实体域对象,因为过程域对象会创建实体域对象。或者会访问实体域对象的方法和属性。

6.       聚集(Aggregation):聚集关系与关联关系在类的定义上有相同的形式,不过两者有不同的语义,对于聚集关系,部分类的对象不能够单独存在,他的生命周期依赖于整体类对象的生命周期,当整体消失时,部分也随之消失,而对于存在关联关系的两个类却允许各自的对象单独存在。聚集关系与关联关系的语义区别是通过业务逻辑来保证的。通常由过程域对象来实现。在ORM中间件的四层应用中,可以在对象-关系映射文件中采用不同的映射元数据来区分两种关系。

7.       一般化(Generalization):通常指的是类之间的继承关系。

8.       持久化过程:

增加:把域对象永久保存到数据库

删除:从数据库中删除一个域对象

修改:更新数据库中域对象的状态

查询:把符合条件的一个或多个对象从数据库加载到内存中

加载:根据特定的OID,把一个域对象从数据库加载到内存中

9.       ORM模式(Object-Relation Mapping):指的是在单个组件中负责所有实体域对象的持久化,封装数据访问细节。

ORM持久化方法:

1)  为每一种可能的数据库访问操作提供单独的方法。

缺点: 

²        持久化层产生大量冗余代码

²        持久化层缺乏弹性

²        持久化层同时与域模型和关系数据模型绑定

2)  采用映射元数据来描述对象-关系的映射细节,使得ORM可以在业务逻辑层和数据库层之间承担桥梁的作用。

10.   对象的删除操作:

1)运用反射机制或得对象的类型

2)参考对象-关系映射元数据,获取对象关联信息

3)自动生成DML语句

4)调用JDBC API执行以上SQL

说明:事实上,Hibernate在初始化阶段就会根据映射信息预定义一些增删改查的SQL语句,这些语句存放在SessionFactory的缓存中,当执行删除操作时直接进行调用就可以了。

11.   其他持久化模式:主动域对象模式、JDO模式、CMP模式

主动域对象模式:

优点:

²        实体域负责数据访问细节把业务访问细节交给过程域完成

²        当关系模型发生改变时,只需修改主动域对象的代码不需修改过程域对象的业务方法

缺点:

²        实体域对象的实现中仍然包含SQL语句

²        每个实体域对象都负责自身的数据访问实现,将这一职责分散到多个对象中,这会导致实体域对象重复实现一些共同的数据访问操作从而造成重复编码。

JDO模式:支持把对象持久化到任意一种存储系统中:关系数据库、面向对象的数据库、基于XML的数据库和其他专有存储系统。

CMP模式:

缺点:

²        必须遵循J2EE规范

²        只能运行在EJB容器中

²        对于复杂的与模型,EJB提供的对象-关系映射能力很有限。

²        由于不同厂商生产的CMP引擎差异很大,对象-关系映射元数据也各不相同导致可移植性很差

12.   Hibernate API说明:

提供操作数据库的接口,包括:Session、Transaction和Query

用于配置Hibernate的接口:Configuration

回调接口,是程序接受Hibernate内部发生事件,并做出相关回应,接口包括:Interceptor、Lifecycle和Validatable

用于扩展Hibernate的功能接口,UserType、CompositeUserType和IdentifierGenerator,如果需要的话应用程序可以扩展这些接口。

13.   Hibernate的5个核心接口:

²      Configuration接口:配置和启动Hibernate,创建SessionFactory对象

java 代码
  1. private static final SessionFactory sessionFactory;   
  2. static {   
  3.     try {   
  4.         // Create the SessionFactory from hibernate.cfg.xml   
  5.         sessionFactory = new Configuration().configure().buildSessionFactory();   
  6.     } catch (Throwable ex) {   
  7.         System.err.println("Initial SessionFactory creation failed." + ex);   
  8.         throw new ExceptionInInitializerError(ex);   
  9.     }   
  10. }   
  11.   
  12. public static SessionFactory getSessionFactory() {   
  13.     return sessionFactory;   
  14. }   


 

²      SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象

java 代码
  1. Session session=HibernateUtil.getSessionFactory().getCurrentSession();  

 

java 代码
  1. session.beginTransaction();   
  2. session.delete(persistentInstance);  


 

²      Transaction接口:管理事务

java 代码
  1. session.getTransaction().commit();  

 

java 代码
  1. String strSQL="select p from Person p left join fetch p.events where p.id = :pid";   
  2.   
  3. Person aPerson=(Person)session.createQuery(strSQL).setParameter("pid",personId).uniqueResult();   


 

 

²      Query和Criteria接口:执行数据库查询²      Session接口:负责对象的增删改查和加载操作
分享到:
评论

相关推荐

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    Hibernate学习笔记与总结

    **Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...

    hibernate学习笔记文档

    ### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...

    hibernate学习笔记

    通过以上内容,我们对 Hibernate 的基本使用和核心概念有了深入了解,包括配置、对象状态管理、对象关系映射以及数据操作等。在实际开发中,熟练掌握这些知识能有效提高数据库操作的效率和代码的可维护性。

    马士兵hibernate学习笔记(原版)

    《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

    Hibernate学习笔记源码及文档

    **Hibernate学习笔记源码及文档** Hibernate 是一款强大的Java持久化框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库交互。本资源包含了Hibernate的学习笔记、源码分析以及开发流程说明文档...

    马士兵java框架hibernate学习笔记

    ### 马士兵Java框架Hibernate学习笔记 #### 一、HelloWorld - **知识点概述**: - **项目搭建**:介绍了如何从零开始搭建一个简单的Hibernate项目。 - **环境配置**:包括了如何配置MySQL数据库、创建必要的表...

    达内HIBERNATE学习笔记

    根据提供的信息,我们可以总结出以下关于达内HIBERNATE学习笔记的重要知识点: ### 第一章:Hibernate入门 #### 1.1 学习目标 - 理解Hibernate的基本概念。 - 掌握如何使用Hibernate进行开发。 #### 1.2 对象持久...

    JDBC Hibernate学习笔记

    ### JDBC与Hibernate学习笔记 #### 一、JDBC概述 **1.1 ODBC与JDBC的区别** - **ODBC(Open Database Connectivity)**: 开放式数据库连接是一种开放标准的应用程序接口(API),用于实现数据库应用程序与不同...

    hibernate 学习笔记1

    ### 对象持久化与Hibernate学习笔记 #### 一、对象持久化的概念与重要性 - **定义**: 对象持久化是指将程序中的对象状态存储到持久化存储设备上的过程,以便在程序结束运行后仍然可以保留这些数据。 - **必要性**:...

    hibernate 学习笔记3

    标题:Hibernate学习笔记3 描述:本篇笔记深入探讨了Hibernate框架中一对多关系的映射及持久化对象状态管理,结合个人理解与实践经验,旨在为读者提供一份详实的学习资料。 ### 一、一对多关系映射详解 在...

    Hibernate学习笔记第二部分

    **正文** Hibernate是一款开源的...总之,“Hibernate学习笔记第二部分”涵盖了ORM的基本概念、配置、实体管理、查询、事务以及缓存等多个关键点,对于新手来说,理解并掌握这些知识将为后续的Java开发打下坚实基础。

    Hibernate 学习笔记&代码.zip

    以上是 Hibernate 学习笔记的概览,通过这个压缩包,你可以逐步掌握 Hibernate 的核心概念,从基本的配置到复杂的查询,再到事务管理和高级特性,全面了解并运用 Hibernate 进行数据库操作。结合代码示例,实践是...

Global site tag (gtag.js) - Google Analytics