和Hibernate有关的概念,是掌握Hibernate必须了解的知识。就个人经验来说,可以在了解如何简单开发Hibernate之后,再来学习这些概念,这样可以有个比较清楚的认识。Hibernate是一个对象-关系映射(ORM)框架。

一、持久层

1.  持久化对象

程序运行期间的数据是保存在内存中的。由于掉电后,内存中的数据会消失,而重要的数据需要长久的保存,因此引入了持久化的概念。

持久化指的是讲内存中的数据保存到磁盘等存储设备中,实现过程大多是通过各种关系数据库唉完成的。

持久化对象是指已经存储到数据库或磁盘中的业务对象。持久化对象可以在创建它的程序作用域之外保持其自身的状态。

2.  分层体系结构和持久层

双层结构分为应用层和数据库层,在双层结构中,用户界面和业务逻辑都有应用层负责,数据库层只负责存放持久化数据。

把用户界面的设计和业务逻辑独立出来,形成表示层,原来的双层结构就变成了三层:表示层、业务逻辑层、数据库层。这是经典的软件应用体系结构。

再把数据访问从业务逻辑中分离出来,形成一个新的、单独的持久化层,3层的软件体系结构就变成了4层,即表示层、业务逻辑层、持久层、数据库层。

3.  对象关系映射ORM

对象-关系映射(Object/Relation Mapping)实现了Java应用中的对象到关系数据库中表的自动持久化,并使用元数据来描述对象和数据库之间的关系。元数据一般用XML文件格式。简单的说对象Object是Java的一个简单的类(POJO),关系Relation对应着数据库表,而映射Mapping则代表着XML文件,这个文件用来联系对象和关系。

二、Hibernate的工作原理

Hibernate开发过程会用到5个核心接口:Configuration接口、SessionFactory接口、Session接口、Transaction接口、Query接口。

  1. Hibernate的初始化,创建Configuration对象。
  2. 创建SessionFactory实例。
  3. 创建Session实例建立数据库连接。
  4. 创建Transaction实例,开始一个事务。
  5. 利用Session的方法进行持久化操作,讲实体对象持久化到数据库中。
  6. 提交操作结果并结束事务。对实体对象的持久化操作结束后,必须提交事务。
  7. 关闭Session,与数据库断开连接。

Hibernate简单的基础理论的更多相关文章

  1. 菜鸟学习Hibernate——简单的增、删、改、查操作

    上篇博客利用Hibernate搭建起一个简单的例子,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述如何利用Hinbernate框架实现简单的数据库操作. 1.加入junit.jar 2.新建 ...

  2. 新秀学习Hibernate——简单的增加、删、更改、检查操作

    部分博客使用Hibernate单的样例,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述怎样利用Hinbernate框架实现简单的数据库操作. 1.增加junit.jar 2.新建一个工具类H ...

  3. Hibernate二次学习一----------Hibernate简单搭建

    因为博客园自带的markdown不太好用,因此所有markdown笔记都使用cmd_markdown发布 Hibernate二次学习一----------Hibernate简单搭建: https:// ...

  4. Spring+SpringMVC+Hibernate简单整合(转)

    SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,下面同样做一个简单的应用实例,介绍SpringMVC的基本用法,接下来的博客也将梳理一下Str ...

  5. 【hibernate】<第一节>hibernate简单入门

    所需工具: ide:eclipse or myeclipse jdk:1.7 jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图 ...

  6. 菜鸟学习Hibernate——简单的一个例子

    一.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了能够使用Hibernate快速上手,我们先讲解一个简单的Hibernate应用实例hibernate ...

  7. Intellij IDEA的Hibernate简单应用

    1.创建数据库及其表 create database demo;    use demo; CREATE TABLE `user` (   `id` int(10) unsigned NOT NULL ...

  8. hibernate简单应用

    Hibernate 第二章 核心API 和CURD实现 核心API介绍 单表操作方法 查询hql语句 1.认识hibernate 核心思想ORM:实现数据库中的文件一一映射为java中的实体类. 使用 ...

  9. hibernate简单介绍

    1.   Hibernate是什么? hibernate是 轻量级的 ORM 框架. ORM全称object/relationmapping [对象/关系映射]. Hibernate主要用来实现Jav ...

随机推荐

  1. Entity Framework 的事务

    一个db.SaveChanges()相当于一个事务,多个db.SaveChanges()保证操作完整性则需要使用事务 在Entity Framework 中使用事务,事务只会对数据库操作进行回滚,不会 ...

  2. Cer Crt Pem Pfx 证书格式转换

    1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopens ...

  3. 关于常用却忘记的css,jQuery

    text-indent:35px;//首行缩进 line-height:12px;//行高,高度和外层高度一样就会居中 box-shadow:inset 0px 0px 2px #ccc; conte ...

  4. IIS下图片防盗连设置详解

    小站只有100个IIS,盗链后经常是连主页都打不开,就想着弄个图片防盗链,在网上找了一下资料,正则表达式的写法啊,ISAPI_REWRITE基本配置啊等等,找来啃了一天终于发现有三个方法实现. 第一. ...

  5. Jquery获取背景图片src路径

    例如获取body的背景: Jquery代码如下: var back = $('body').css('backgroundImage'); back.substring(start,end); //截 ...

  6. Linux系统下快速删除某个目录下大量文件

    不管是哪个操作系统,同一级目录存在太多的文件都是一件可怕的事情,不管是读取还是删除的时候. 一旦这种不幸的事情发生在你身上,而又不能完全把整个目录删掉怎么办呢? 你可以用 rm -f *.log 但是 ...

  7. Application.Count.ToString()和Application["count"].ToString()的区别

    当属性名中包括特殊字符如 “.”或“-”就不能使用“.”操作符了.操作符只能使用[ ]操作符 为了统计网站的在线人数,我们可以在Global.asa文件中包含如下代码: <SCRIPT LANG ...

  8. 对比iOS网络组件:AFNetworking VS ASIHTTPRequest

    对比iOS网络组件:AFNetworking VS ASIHTTPRequest 作者 高嘉峻 发布于 2013年2月28日 | 7 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件 ...

  9. Android 自定义View 画圆 画线

    自定义一个DrawCircle继承View 实现构造方法: public DrawCircle(Context context) { super(context); this.mContext = c ...

  10. SQL查询优化

    在数据库SQL性能优化中,查询优化所占比较高.select调优基本还是比较耗时的.所以我整理了一些提示.每当我在写查询语句的时候,总会看看是否满足这些提示清单. 1.要为WHERE 和JOIN后面的字 ...