Hibernate简单的基础理论
和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接口。
- Hibernate的初始化,创建Configuration对象。
- 创建SessionFactory实例。
- 创建Session实例建立数据库连接。
- 创建Transaction实例,开始一个事务。
- 利用Session的方法进行持久化操作,讲实体对象持久化到数据库中。
- 提交操作结果并结束事务。对实体对象的持久化操作结束后,必须提交事务。
- 关闭Session,与数据库断开连接。
Hibernate简单的基础理论的更多相关文章
- 菜鸟学习Hibernate——简单的增、删、改、查操作
上篇博客利用Hibernate搭建起一个简单的例子,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述如何利用Hinbernate框架实现简单的数据库操作. 1.加入junit.jar 2.新建 ...
- 新秀学习Hibernate——简单的增加、删、更改、检查操作
部分博客使用Hibernate单的样例,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述怎样利用Hinbernate框架实现简单的数据库操作. 1.增加junit.jar 2.新建一个工具类H ...
- Hibernate二次学习一----------Hibernate简单搭建
因为博客园自带的markdown不太好用,因此所有markdown笔记都使用cmd_markdown发布 Hibernate二次学习一----------Hibernate简单搭建: https:// ...
- Spring+SpringMVC+Hibernate简单整合(转)
SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,下面同样做一个简单的应用实例,介绍SpringMVC的基本用法,接下来的博客也将梳理一下Str ...
- 【hibernate】<第一节>hibernate简单入门
所需工具: ide:eclipse or myeclipse jdk:1.7 jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图 ...
- 菜鸟学习Hibernate——简单的一个例子
一.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了能够使用Hibernate快速上手,我们先讲解一个简单的Hibernate应用实例hibernate ...
- Intellij IDEA的Hibernate简单应用
1.创建数据库及其表 create database demo; use demo; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL ...
- hibernate简单应用
Hibernate 第二章 核心API 和CURD实现 核心API介绍 单表操作方法 查询hql语句 1.认识hibernate 核心思想ORM:实现数据库中的文件一一映射为java中的实体类. 使用 ...
- hibernate简单介绍
1. Hibernate是什么? hibernate是 轻量级的 ORM 框架. ORM全称object/relationmapping [对象/关系映射]. Hibernate主要用来实现Jav ...
随机推荐
- nexus 的使用及maven的配置
一.nexus的安装 1.下载nexus(点解这里) 2.下载后解压文件,将解压后的nexus文件放在你自己想要的地方 3.配置环境变量(和配置java的环境变量一样) 4.安装和启动nexus 由于 ...
- Calling a C++ dll with unsigned char* parameters
unsigned char* 等价 BYTE* 例1: C++: int __stdcall LIVESCAN_GetFPRawData(int nChannel, unsigned char *p ...
- ORACLE复制数据库【weber出品】
一.概述 在公司中,我们会经常面临着一种情况.我们制定了对数据库的操作方案后,还不可以在真正的数据库上执行,需要在备用数据库进行测试,这个时候就需要备用数据上的数据和真正数据库的数据是一模一样的.我们 ...
- ios视图切换之push与present混用
在变成过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present. 我们的布局经常是在window上加一个nav ...
- Java 的简单了解
本文是主要根据百度百科以网上一些资料,整理的一点对Java的浅显的了解,不当之处,还请大家批评指正. 最初见到Java这个单词,是在以前的手机上,游戏启动时总会显示java的图标和名字,就感觉java ...
- ECSTORE2.0 定时任务配置
今天在配置ecstore2.0的定时任务时候,发现ECOS后台每30秒通过JS调用 http://localhost/ecstore-bugfix/index.php/shopadmin/index. ...
- php 产生不重复的随机数
$arr=array();//创建数组 while(count($arr)<10){ $a = mt_rand(1000,9999);//产生随机数 if(!in_array($a,$arr)) ...
- Delphi的IDHTTP的基本用法
一.IDHTTP的基本用法 IDHttp和WebBrowser一样,都可以实现抓取远端网页的功能,但是http方式更快.更节约资源,缺点是需要手动维护cook,连接等 IDHttp的创建,需要引入ID ...
- android adb 常用指令
转自:http://www.cnblogs.com/playing/archive/2010/09/19/1830799.html Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你 ...
- hibernate3 无法查询中文问题
在查询中文时 hql语句在生成的语句中把中文显示为乱码 则在hibernate配置文件中加入: <property name="hibernate.query.factory_cla ...