【Hibernate】——核心对象
2016-04-27 19:47
399 查看
Hibernate开发步骤
Hibernate是一种体现ORM思想的框架,那么它的开发步骤也就显而易见了。用一句简单的话概括就是建类、映射、导出表开发。在开发过程中,我们一定要非常清楚Hibernate的几大核心对象。
认识Hibernate的基本组件
Hibernate五大核心接口
在Hibernate模块也就是持久化层,Hibernate的核心接口一共有5个,分别为:这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行实物控制。
Session接口
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL语句。)。但需要注意的是Session对象是非线程安全的。Session也称为持久化管理器,因为它是与持久化有关的操作接口。Session通过SessionFactory打开,在所有的工作完成后,需要关闭。调用代码:Session session= sessionFactory.openSession();
SessionFactory接口
SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
调用代码:SessionFactorysessionFactory = cfg.buildSessionFactory();
说明:SessionFactory由Configuration对象创建,所以每个Hibernate配置文件,实际上是对SessionFactory的配置。
Configuration接口
Configuration接口负责配置并启动Hibernate,创建SessionFactory对 象。它在多个应用线程间进行共享。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 它包括如下内容:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。
Hibernate映射文件(*.hbm.xml)。
Hibernate配置的两种方法:
属性文件(hibernate.properties)。
调用代码:Configurationcfg = new Configuration();
Xml文件(hibernate.cfg.xml)。
调用代码:Configurationcfg = new Configuration().configure();
Transaction接口
Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 它将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)——允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。调用代码:Transaction tx =session.beginTransaction();
使用Hibernate进行操作时必须显式的调用Transaction(默认:autoCommit=false)。
Query和Criteria接口
Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。调用代码:Query query =session.createQuery(“from User”);
了解核心对象帮助我们更加的了解Hibernate,这些核心接口在以后的开发中都会用到,通过这些接口,不仅可以对持久化对象进行存取,还能够进行实物控制。
相关文章推荐
- 【Houdini】Houdini实现Realflow大脑袋案例
- 机器视觉开源代码集合
- Android 图片滤镜工具——高斯模糊
- android---下拉ListView(顺畅版)
- maven 使用axis2 client 需要导入的依赖
- android---gesture手势识别类
- 初学并查集的例题1 X-Plosives,LA 3644
- 【快捷键】那些颠覆你三观的Word隐藏技能
- JSP工作原理图
- Android Wallpaper分析
- Android RadioButton图片和图片尺寸
- 使用Jenkins自动部署nodejs应用
- 深入理解socket网络异常
- Java异常处理(2)
- 360实习生面试的两道题
- [SA] BZOJ 2251 [2010Beijing Wc]外星联络
- 配置Maven从Nexus下载构件 ----学习笔记
- 大数据 --> 分布式服务框架Zookeeper
- 团队作业(四)
- centos7 安装 mysql