hibernate学习总结

原创 2015年07月06日 22:23:31

一、SessionFactory,Session,Transaction的初始化
Configuration configuration=new Configuration().configure();
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory=configuration.buildSessionFactory(serviceRegistry);
session=sessionFactory.openSession();
transaction=session.beginTransaction();
Hibernate4新增了一个ServiceRegistry接口,所有基于Hibernate的配置或者服务都必须统一向这个ServiceRegistry 注册后才能生效。
构造SessionFactory很消耗资源,一般情况下一个应用中只初始化一个SessionFactory对象。
Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate运作的中心,所有持久化对象必须在session的管理下才可以进行持久化操作。
Session 类的方法:
取得持久化对象的方法: get() load()
持久化对象都得保存,更新和删除:save(),update(),saveOrUpdate(),delete()
开启事务: beginTransaction().
管理 Session 的方法:isOpen(),flush(), clear(), evict(), close()等,
load是延迟加载的,可以通过xml文件配置lazy=’false’取消延迟加载。

Transaction代表一次原子操作,它具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作。
常用方法:
commit():提交相关联的session实例
rollback():撤销事务操作
wasCommitted():检查事务是否提交
在事务提交之前会自动刷新Session的缓冲
二、事务的隔离级别
数据库提供四种隔离级别,READ UNCOMMITED读未提交,READ CONMMITED 读已提交,REPEATABLE READ可重复度,SERIALIZABLE串行化,但是每一种数据库支持的隔离级别不一样。
Hibernate 的配置文件中可以显式的设置隔离级别. 每一个隔离级别都对应一个整数:
1. READ UNCOMMITED
2. READ COMMITED
4. REPEATABLE READ
8. SERIALIZEABLE
hibernate.connection.isolation 属性来设置事务的隔离级别。

三、hibernate.cfg.xml配置信息
JDBC 连接属性
connection.url:数据库URL
connection.username:数据库用户名
connection.password:数据库用户密码
connection.driver_class:数据库JDBC驱动
dialect:配置数据库的方言,根据底层的数据库不同产生不同的 sql 语句,Hibernate 会针对数据库的特性在访问时进行优化
C3P0 数据库连接池属性
hibernate.c3p0.max_size: 数据库连接池的最大连接数
hibernate.c3p0.min_size: 数据库连接池的最小连接数
hibernate.c3p0.timeout: 数据库连接池中连接对象在多长时间没有使用过后,就应该被销毁
hibernate.c3p0.max_statements: 缓存 Statement 对象的数量
hibernate.c3p0.idle_test_period: 表示连接池检测线程多长时间检测一次池内的所有链接对象是否超时. 连接池本身不会把自己从连接池中移除,而是专门有一个线程按照一定的时间间隔来做这件事,这个线程通过比较连接对象最后一次被使用时间和当前时间的时间差来和 timeout 做对比,进而决定是否销毁这个连接对象。
hibernate.c3p0.acquire_increment: 当数据库连接池中的连接耗尽时, 同一时刻获取多少个数据库连接
其他
show_sql:是否将运行期生成的SQL输出到日志以供调试。取值 true | false
format_sql:是否将 SQL 转化为格式良好的 SQL . 取值 true | false
hbm2ddl.auto:在启动和停止时自动地创建,更新或删除数据库模式。取值 create | update | create-drop | validate
hibernate.jdbc.fetch_size
hibernate.jdbc.batch_size

Hibernate学习总结(一)

1、什么是Hibernate Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架(ORM,对象关系映射 Object Relationship mapper) ...
  • u012750846
  • u012750846
  • 2015年09月07日 15:36
  • 739

Hibernate详细教程

Hibernate学习总结---- 一、搭建Hibernate环境 1.在src目录下创建hibernate.cfg.xml配置文件 PS:文件的名字不能改! xml ve...
  • dm1314oooooooo
  • dm1314oooooooo
  • 2017年04月13日 15:25
  • 187

学习hibernate总结

各位码友大家好,最近学习了开源框架hibernate,真心感觉太有用了,可是鄙人一向资质平平,深沉次的还没理解,只盼来日开天眼,一眼看透hibernate,同时也请大家多多的指点指点,闲言少叙,言归正...
  • u010716332
  • u010716332
  • 2013年07月21日 19:36
  • 513

Hibernate框架常用知识点总结

Hibernate配置详解 Hibernate核心详解 Hibernate事务详解 Hibernate多表关系详解
  • shuaicihai
  • shuaicihai
  • 2017年01月16日 09:00
  • 3530

【SSH进阶之路】Hibernate系列——总结篇(九)

这篇博文是Hibernate系列的最后一篇,既然是最后一篇我们进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通。。。...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年11月22日 08:18
  • 16964

Hibernate 学习教程

目录(?)[+] 第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 ...
  • qq_26676207
  • qq_26676207
  • 2016年05月16日 09:29
  • 2581

Hibernate入门学习(一)

Hibernate工作闲暇之余学习入门
  • fb281906011
  • fb281906011
  • 2013年12月28日 15:24
  • 18302

Hibernate框架学习(一 )

Hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架。  只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表...
  • lishuangzhe7047
  • lishuangzhe7047
  • 2014年04月14日 22:57
  • 12214

Hibernate学习大全

第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课 第一个示例HibernateHelloWorld 7...
  • xiangzhihong8
  • xiangzhihong8
  • 2016年05月30日 11:46
  • 2506

Hibernate重点知识笔记-必看

1.关于mappedBy?    1、mappedBy 含义    -- 拥有方能够自动维护跟被拥有方的关系    2、mappedBy标签一定是定义在 the owned side(被拥...
  • he90227
  • he90227
  • 2014年08月22日 11:51
  • 2265
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate学习总结
举报原因:
原因补充:

(最多只允许输入30个字)