和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. 启动mySQL安装出现1067错误

    可能几种的办法: 删除data目录下的ib_logfile0和ib_logfile1 查看my.ini文件中的dir设置 查看err文件,如果是temp出现错误文件,则添加temp文件的路径

  2. 转载,crtmpserver文件夹结构分析

    1. 顶层(crtmpserver/) 下的文件夹结构 3rdparty/             : 对lua, xml进行解析的源代码文件夹 sources/              : 项目的 ...

  3. scss组件定制的一些学习

    应组织上的要求,简化前端开发,提高工作效率,开始着手研究scss框架及组件化. 把一些长的像的弄在一起,就有了组件化. 但组件只用一部分需要的,就有了定制. 下面是参考一个button组件写出的一些简 ...

  4. 一个Div在BOdy中上下左右居中

    在body中让一个DIv居中 上下左右 <body> <div style=" width:800px; height:500px; position:absolute; ...

  5. 编程的宗派(OOP与FP孰优孰劣)--王垠

    编程的宗派 总是有人喜欢争论这类问题,到底是"函数式编程"(FP)好,还是"面向对象编程"(OOP)好.既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙 ...

  6. How systems researchers build systems

    Define the problem >>Identify the constraints and abstract problem propose solution:simple ide ...

  7. android传送照片到FTP服务器

    package com.photo; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundE ...

  8. Host myCloudData.net on your own server (支持自建服务器)

    http://www.myclouddata.net/#/home Host myCloudData.net on your own serverUse the myCloudData.net SDK ...

  9. PullToRefreshListView 内嵌checkbox 数据丢失问题

    在PullToRefreshListView 内部内嵌了Checkbox如下图所示: 原本设计思路是:对CheckBox 进行 setOnCheckedChangeListener 监听 当Check ...

  10. Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->user

    我参考了这篇文章来构建项目的前台和后台的目录结构.感谢Andy的这篇文章.按照所有的步骤,您将有单独的前台和后台面板,如: http://localhost/index.php // 前台 http: ...