hibernate的核心类和接口(2)
来源:互联网 发布:虚幻4编程语言 编辑:程序博客网 时间:2024/04/30 10:34
在实际的Hibernate应用中,使用到的Hibernate核心接口与类并不多。要更深入地使用Hibernate,还需要学习Hibernate的延迟加载和缓存处理等高级的内容。下面附上Hibernate核心类和接口的层次图:
- 最底层的配置文件,在上一讲有详细讲解配置。
Configuration 类
org.hibernate.cfg.Configuration 实例代表了一个应用程序中 Java 类型到SQL数据库映射的完整集合。作用如下:
- 负责管理hibernate的配置信息。
- 读取hibernate.cfg.xml中的配置信息。
- 加载hibernate.cfg.xml配置文件中配置的驱动,url,用户名,密码,连接池。
- 管理对象映射文件*.hbm.xml(
例:<mapping resource=”com/cmj/domain/Employee.hbm.xml”>
)
SessionFactory
当所有映射定义被 org.hibernate.cfg.Configuration 解析后,应用程序必须获得一个用于构造 org.hibernate.Session 实例的工厂。这个工厂将被应用程序的所有线程共享:
- 可以缓存sql语句和数据(称为session级缓存)
- 是一个重量级的类,因此我们需要保证一个数据库,有一个SessionFactroy
- 通过SessionFactory借口可以获得session实例(getCurrentSession(),openSession())
注:openSession()区别getCurrentSession()
1.openSession() 是获取一个新的session.
2. getCurrentSession () 获取和当前线程绑定的session,换言之,在同一个线程中,我们获取的session是同一session,这样可以利于事务控制
如果希望使用 getCurrentSession 需要配置 hibernate.cfg.xml中配置.
配置:thread将session与线程绑定。
3. 如何选择
原则:
①如果需要在同一线程中,保证使用同一个Session则,使用getCurrentSession()
②如果在一个线程中,需要使用不同的Session,则使用opentSession()
4. 通过 getCurrentSession() 获取的session在事务提交后,会自动关闭,通过openSession()获取的session则必须手动关闭
5. 如果是通过getCurrentSession() 获取 sesssion ,进行查询需要事务提交.
session(会话)
- Session一个实例代表与数据库的一次操作(当然一次操作可以是crud组合)
- Session实例通过SessionFactory获取,用完需要关闭。
- Session是线程不同步的(不安全),因此要保证在同一线程中使用,可以用getCurrentSession()。
- Session可以看做是持久化管理器,它是与持久化操作相关的接口
几个重要的方法
- 保存一个对象(记录)—-save方法
- 删除一个对象(记录)—-delete方法
- 查询一个对象(记录)—-get/load方法
- 修改一个对象(记录)—-update方法
- hibernate的核心类和接口(2)
- Hibernate的核心类和接口
- Hibernate的核心类和接口
- hibernate的核心类和接口
- hibernate的核心类和接口
- Hibernate的核心接口和类
- Hibernate的核心类和接口
- Hibernate核心接口和类
- Hibernate核心接口和类
- hibernate核心类和接口
- Hibernate核心接口和类
- Hibernate核心接口和类
- Hibernate核心类和接口
- Hibernate核心类和接口
- Hibernate(2)Hibernate核心类和接口
- (第3讲)hibernate的核心类和接口
- Hibernate的核心接口
- hibernate的核心接口
- CSP考试 2015年9月第2题 日期计算 C语言实现
- 读书笔记----javascript类和模块
- ConcurrentHashMap原理分析
- RecyclerView单选
- 默认函数
- hibernate的核心类和接口(2)
- Ubuntu14.04下安装oracle JDK32位。并更换默认jdk
- HDU 2277 Change the ball(找规律)
- codeforces #343 C. Famil Door and Brackets (dp)
- PB控件TreeView的四个函数
- 数据结构2.2
- 杭电Acm1015
- for、while
- 安卓开发环境搭建常遇到的问题与总结