Hibernate的基本工作原理
Hibernate开发过程中会用到5个核心接口:
1.Configuration
2.SessionFactory
3.Session
4.Transaction
5.Query
Hibernate就是通过这些接口来进行持久化工作的。
流程:
1.创建Configuration实例
读取配置文件Hibernate.cfg.xml到Configuration实例,根据配置文件中的mapping元素加载映射文件到Configuration实例。
2.创建SessionFactory实例
通过Configuration对象读取到的配置文件信息创建SessionFactory,即将Configuration对象内的配置信息存入SessionFactory中。SessionFactory充当数据存储源的代理,并负责创建Session对象。
3.创建Session实例
Session通过SessionFactory打开,创建一个Session对象相当于与数据库建立一个新的连接。Session对象用来操作实体对象,并把这些操作转换成对数据库中数据的CRUD。
4.创建Transaction实例
Transaction用于事务管理,一个事务可以包括多个操作。使用Hibernate进行CRUD时必须先创建Transaction对象。
5.利用Session的方法进行持久化操作。
6.提交操作结果并提交事务。
7.关闭Session,与数据库断开连接。
Hibernate的基本工作原理的更多相关文章
- hibernate的工作原理
hibernate的工作原理1.Hibernate 的初始化.读取Hibernate 的配置信息-〉创建Session Factory1)创建Configeration类的实例.它的构造方法:将配置信 ...
- JAVA Hibernate工作原理及为什么要用
hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...
- Hibernate工作原理及为什么要用?
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- JAVA Hibernate工作原理及为什么要用(转)
hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库.hibernate核心接口 ...
- hibernate篇章五--Hibernage工作原理
Hibernage工作原理: 1.配置hibernate对象关系映射文件.启动服务器 2.服务器通过实例化Configuration对象,读取hibernate.cfg.xml文件的配置内容,并根据相 ...
- Hibernate的工作原理及使用的原因
一.工作原理: 1.读取并解析配置 2.读取并解析映射信息,创建Session Factory 3.打开Session 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Sess ...
- 2018.10.7 理解Hibernate的工作原理及其中的ORM详解
复习 hibernate框架 简介j及其搭建: hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库. 1 ...
- hibernate工作原理及作用
转载自 http://www.cnblogs.com/dashi/p/3597969.html#commentform JAVA Hibernate工作原理及为什么要用 hibernate 简介:hi ...
- Hibernate核心接口和工作原理
Hibernate核心接口和工作原理 Hibernate有五大核心接口,分别是:Session .Transaction .Query .SessionFactory .Configuration . ...
随机推荐
- XGBoost学习笔记1
XGBoost XGBoost这个网红大杀器,似乎很好用,完事儿还是自己推导一遍吧,datacamp上面有辅助的课程,但是不太涉及原理 它究竟有多好用呢?我还没用过,先搞清楚原理,hahaha~ 参考 ...
- Uva10791 唯一分解定理模板
唯一分解定理: Uva10791 题意: 输入整数n,要求至少两个正整数,使得他们的最小公倍数为n,且这些整数的和最小 解法: 首先假设我们知道了一系列数字a1,a2,a3……an,他们的LCM是n, ...
- vue 项目
项目搭建 1. npm install -g @vue/cli 2.vue -h 3.vue create list-demo 4.yarn serve 运行项目 路由 1.yarn add vue- ...
- 关于SSHkey的问题
这两天开始在办公室和家来回考代码,才感觉需要学习Git了.先在Github上注册账户,建立仓库.在执行git clone回本地时,出现错误: git@github.com: Permission de ...
- Django-模型(二)
条件查询 字段查询 实现sql中where的功能,调用过滤器filter().exclude().get(),下面以filter()为例. 通过"属性名_id"表示外键对应对象的i ...
- Wannafly Camp 2020 Day 2B 萨博的方程式 - 数位dp
给定 \(n\) 个数 \(m_i\),求 \((x_1,x_2,...,x_n)\) 的个数,使得 \(x_1 \ xor\ x_2\ xor\ ...\ xor\ x_n = k\),且 \(0 ...
- 回溯经典(指定位置N皇后问题)
N皇后问题自不必多说,这道题的先行条件是在放置的时候已经指定了一个棋子的位置. 输入第一行为N,第二行为指定棋子的坐标(x,y):输出方案总数以及按字典序升序的各种方案. 思路: 首先是回溯,其次对待 ...
- 最短路-A - 畅通工程续
A - 畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这 ...
- CR(Code Review)代码评审如何发挥作用
在CODE中经常会发起代码评审和进行评审任务,可是根据目前的做法流程,我认为它就是走走形式,为了应付检查,根本没有达到预期的效果,即审查代码质量.学习他人写的代码和提高自身写代码的能力.对此,将从两方 ...
- ST表求区间最值
#include<bits/stdc++.h> #define ll long long #define lowbit(x) x&-x using namespace std; ; ...