hibernate学习系列-----(2)hibernate核心接口和工作机制
在上一篇文章hibernate学习系列-----(1)开发环境搭建中,大致总结了hibernate的开发环境的搭建步骤,今天,我们继续了解有关hibernate的知识,先说说这篇文章的主要内容吧:
- Configuration类
- SessionFactory接口
- Session接口
- Transaction接口
- Query和Criteria接口
下面就进行分类别地详细说明:
Configuration类
- 功能描述:Configuration类负责管理Hibernate的配置信息作并根据配置信息启动Hibernate。
- 详细说明:提供数据库的链接参数;数据库连接池以及对象关系文件的配置,通过Configuration类来加载配置信息并且启动hibernate的应用程序
- hibernate的配置方法:(1):使用hibernate.properties文件进行配置;(2)使用xml文件进行配置,也就是“hibernate.cfg.xml”文件,推荐使用后者
SessionFactory接口
- SessionFactory实例对应一个数据存储源,我们的应用程序就是通过SessionFactory实例来获取我们的Session对象,SessionFactory的特点有:
- (1)线程安全,一个SessionFactory实例可以被应用的多个线程共享
- (2)重量级:需要很大的缓存来存储预定义的SQL语句以及映射数据,so,如果我们的应用程序只使用一个数据库,则只需建立一个SessionFactory对象即可
Session接口
- Session又被称之为持久化管理器,它提供了和持久化相关的CRUD操作,在hibernate中应用最为广泛。Session接口有哪些特点呢?
- (1)线程不安全:它代表了我们对数据库的一次操作,因此在开发中应尽量避免多个线程共享同一个Session实例;
- (2)轻量级:它的销毁和创建不需要消耗太多资源;
- (3)hibernate的一级缓存:存放了当前工作单元加载的一些对象,每一个Session都有自己的缓存,缓存中的对象只能被当前的工作单元所使用;
- (4)SessionFactory对象打开:使用完毕后要及时关闭。
Transaction接口
- Transaction接口是hibernate中的事务接口,它包括:JDBC API、JTA,hibernate在进行持久化操作时(CRUD),必须在事务中加以控制。
Query和Criteria接口
- Query和Criteria接口是hibernate中的查询接口:
- (1)Query接口包装了一个HQL(Hibernate Query Language)查询语句。
- (2)Criteria接口比较面向对象,擅长执行动态查询。
hibernate的核心接口就大致说到这儿了,下面说一下hibernate的工作机制,先上图:
这张图还是比较好理解的,我就不再说明。
hibernate学习系列-----(2)hibernate核心接口和工作机制的更多相关文章
- Hibernate 核心接口和工作机制
主要内容 Configuration类 sessionFactory接口 session接口 Transaction接口 Query 和 criteria接口 1.Configuration类 负责管 ...
- Hibernate核心接口和工作原理
Hibernate核心接口和工作原理 Hibernate有五大核心接口,分别是:Session .Transaction .Query .SessionFactory .Configuration . ...
- Hibernate学习一:Hibernate注解CascadeType
http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...
- java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制
ClassLoader的工作机制 java应用环境中不同的class分别由不同的ClassLoader负责加载. 一个jvm中默认的classloader有Bootstrap ClassLoader. ...
- hibernate学习系列-----(9)hibernate对集合属性的操作之Map集合篇
照旧,先新建一个StudentMap.java实体类,将hobby属性使用map集合接口来存放: package com.joe.entity; import java.util.Map; publi ...
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate详解(5)——Hibernate核心接口和工作原理
Hibernate核心接口 Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration .这五个接口构成了Hi ...
- hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询
紧接着上一篇,今天继续hibernate的学习总结,来聊一聊hibernate的基本查询方法,先说说HQL(hibernate Query Language):它是官方推荐的查询语言.在开始写代码之前 ...
- hibernate学习系列-----(7)hibernate对集合属性的操作之List集合篇
今天要写的内容其实不多,本打算将hibernate对集合的操作的内容直接归结为一篇的,但想一想,还是分开写的比较好,毕竟前面的已经发布出去来了,废话不多说,开始吧! 依旧新建一个StudentList ...
随机推荐
- Mysql 乱码配置
转自: http://www.ha97.com/5359.html 一.登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下: +--------- ...
- artTemplate 动态加载模版
问题 之前项目中一直有用到artDialog对话框组件,作者后期又发布了js模版引擎,使用过几次,效果感觉还挺好.当自己想把模版放在html之外时,遇到了一点问题. 作者介绍的方式,是在js文件中,通 ...
- cookie登录
#coding:utf-8 import tornado.httpserver import tornado.ioloop import tornado.options import tornado. ...
- qt include无法自动补齐
原因一: 检查cmake有没有include_directories 原因二: CmakeList.txt放错位置 原因三: 没有用qt new file来创建头文件
- AC日记——奶牛集会 洛谷 P2345
奶牛集会 思路: 把奶牛按照v排序: 然后,每次都把奶牛放入一个集合s: 因为奶牛已经排序: 所以,每次第i次放入奶牛起作用的v就是vi: 每次ans+=(xi*sum-sumxl)*vi+(sumx ...
- HDU 2586.How far away ?-在线LCA(ST)-代码很认真的写了注释(捞到变形)
2018.9.10 0:40 重新敲一遍,然后很认真的写了注释,方便自己和队友看,刚过去的一天的下午打网络赛有一题用到了这个,但是没写注释,队友改板子有点伤,因为我没注释... 以后写博客,代码要写注 ...
- python 将windows字体中的汉字生成图片的方法
#encoding: utf-8import osimport pygame chinese_dir = '黑体常规'if not os.path.exists(chinese_dir): os.mk ...
- UVALive 3027 Corporative Network (带权并查集)
题意: 有 n 个节点,初始时每个节点的父节点都不存在,你的任务是执行一次 I 操作 和 E 操作,含义如下: I u v : 把节点 u 的父节点设为 v ,距离为| u - v | ...
- postgres表空间、模式、表和用户/角色之间的关系
一. 角色(role)和用户(user) 1. role postgres=# create role kanon password 'kanon'; #使用role创建 ...
- luogu P1821 [USACO07FEB]银牛派对Silver Cow Party
题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...