我们在Java中谈到持久化时,一般是指利用SQL在关系数据库中存储数据。

  ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,

框架据此将实体对象持久化到数据库表中;

  JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,

在企业应用发挥更大的作用。

  在Java应用程序中使用SQL数据库时,Java代码通过Java数据库连通性(Java DataBase Connectivity,JDBC)

API把SQL语句发到数据库。无论是手工编写SQL并嵌入到Java代码里面,还是由Java代码在运行中生成,都要用JDBC

API绑定实参,来准备查询参数、执行查询、滚动查询结果表、从结果集中获取值等等。这些都是底层的数据访问任务。

作为应用程序开发人员,我们更关注需要这些数据访问的业务问题。我们真正想编写的是把对象的代码——类的实例——

保存和获取到数据库,或从数据库获取,使我们从这类底层的苦差事中解脱出来。

  数据库管理系统提供数据级的安全性。当我们讨论持久化时,考虑以下这些事情:

1、结构化数据的存储、组织和获取;

2、并发性和数据完整性;

3、数据共享。

领域模型。表——类

  业务逻辑并不直接在SQL结果集的行和列上进行工作,而是与这个面向对象的领域模型

及其作为关联对象网络的运行时实现进行交互。多态。

  在持久化的上下文中,同一性与系统如何处理高速缓存和事务密切相关。

  类之间的关系如何被映射和处理。数据库中的外键就是你所需要的一切吗??

  在一个中型或者大型应用程序中,按关注点组织类通常比较有意义。持久化是一个关注点。

    1、理解对象-关系持续性

  Hibernate协调应用与关系型数据库的交互。

  在任何对象持续性解决方案中,实体关联的映射与管理都是中心概念。

  分层的体系结构定义了实现不同关注点的代码之间的接口,允许改变现实关注点的方法,无需

明显破坏其他层中的代码。分层也决定了产生中间层依赖的种类。规则如下:

1、层由上到下进行通信。每一层仅依赖于其直接地下层。

2、除了其直接下层,每一层都不知道任何其它层。

什么是ORM??

对象-关系映射(ORM)就是利用描述对象和数据库之间映射的元数据,自动(且透明)地把Java

应用程序中的对象持久化到关系数据库中的表。

ORM本质上是把数据从一种表示法(可逆)转换为另一种表示法进行工作。

  领域模型表示用在Java应用程序中的业务实体。在分层的系统架构中,领域模型用来在业务层执行业务逻辑

(在Java中,而不是在数据库中)。这个业务层与下方的持久层交流,以加载和存储领域模型的持久化对象。

ORM是管理持久化的持久层中的中间件。

  Hibernate Session(会话)是个单线程、非共享的对象,表示使用数据库的一个特定工作单元。它有持久化管理器API,调用它来加载

和存储对象。(Session的内部由一列SQL语句组成,这些语句要与数据库在某个时点上进行同步,且托管持久化实例的一个印象由Session监控)。

  dialect方言的设置使得Hibernate知道必须生成哪个SQL变种来与数据库进行对话;Hibernate配有许多种方言。

SessionFactory是给一组特定的映射元数据表示特定Hibernate配置的一个对象。

  Hibernate仅仅定义了三种状态:瞬时、持久和分离。

  Hibernate认为所有的瞬时实例都是非事务的,瞬时状态的修改不能在任何事务的上下文

执行。这就意味着Hibernate不能对瞬时对象提供任何回滚功能。

  把实例从瞬时状态转换为持久状态有两种方式:调用持久管理器的save()方法或者从已经

存在的持久实例中创建引用。持久实例通常是同Session相关的,是事务的。

Java Persistence with Hibernate的更多相关文章

  1. Manning Java Persistence with Hibernate & hibernate_in_action

    Manning | Java Persistence with Hibernatehttps://www.manning.com/books/java-persistence-with-hiberna ...

  2. Java Hour 44 Hibernate

    其实要学习的东西很多,奈何人的精力和时间终归是有限的. 这里先暂且放下struts2 相关的东西,当然这里也先寄存这不少相关的好书,等我来看. 44.1 Hibernate 是一个好项目 目标在于成为 ...

  3. Java Persistence API(转)

    定义 Java Persistence API JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.[编辑本段]起源 Sun引入新的JPA ORM规范 ...

  4. JAVA PERSISTENCE API (JPA)

    13.2.1. About JPA The Java Persistence API (JPA) is the standard for using persistence in Java proje ...

  5. Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器

    关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务 ...

  6. Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

    本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...

  7. JPA(Java Persistence API)Java持久化API-介绍

    JPA全称: Java Persistence API JPA的宗旨是为POJO提供持久化标准规范,能够脱离容器独立运行,很方便开发和测试.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关 ...

  8. 关于注解-Hebernate与JPA(java persistence api)

    The JPA spec. defines the JPA annotation in the javax.persistence package. Hibernate not only implem ...

  9. Java EE (4) -- Java EE 6 Java Persistence API Developer Certified Expert(1z0-898)

    Overview of the Java Persistence API Describe the basics of Object Relational Mapping (ORM) Define t ...

随机推荐

  1. ERROR! MySQL is running but PID file could not be found

    /etc/init.d/mysql status提示ERROR! MySQL is running but PID file could not be found先打印MYSQL进程ps aux | ...

  2. nodejs处理图片、CSS、JS链接

    接触Nodejs不深,看到页面上每一个链接都要写一个handler,像在页面显示图片,或者调用外部CSS.JS文件,每个链接都要写一个handler,觉得太麻烦,是否可以写个程序出来,能够自动识别图片 ...

  3. 3D坦克大战游戏iOS源码

    3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...

  4. FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

    前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...

  5. C#学习笔记-Windows窗体自定义初始位置

    根据屏幕大小定义初始位置: (这个不是难,但是最近常常忘记,记着方便查看.) //获取当前屏幕的长和宽 int ScreenX = Screen.PrimaryScreen.Bounds.Width; ...

  6. 谈谈Java中的ThreadLocal

    什么是ThreadLocal ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本.通过ThreadLocal可以将对象的 ...

  7. 3.开发Java消息驱动bean实例代码

    java消息服务(JMS)是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互.应用程序A发送一条消息到消息服务器的某个目的地(Destination),然后消 ...

  8. BZOJ2748[HAOI2012]音量调节

    Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...

  9. 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

    其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新htm ...

  10. apache 多站点配置

    安装时可以选择gbk-gb2312的编码(我自己用utf-8). 2: 修改本机的hosts文件,如下: 示例:127.0.0.1            localhost127.0.0.1      ...