1.什么是Hibernate?

首先,Hibernate是数据持久层的一个轻量级框架。数据持久层的框架有非常多比方:iBATIS,myBatis,Nhibernate,Siena等等。

而且Hibernate是一个开源的orm(object relations mapping)框架,提供了查询获取数据的方法,用面向对象的思想来操作数据库,节省了我们开发处理数据的时间。

2.那使用Hibernate的长处呢?

1.使用简单介绍的hql语句(Hibernate query language)。能够不使用传统的insert,update等sql语句。比方insert一个对象,原来的做法是:insert into 表名称 alue(值1,值2,值3,……),而如今的做法是:save(对象)。

2.使用or映射。对象到关系数据库之间的映射。是从对象的角度操作数据库,再次体现了面向对象思想。原来的实体抽取方法:首先有了表,然后表映射实体对象。而如今Hibernate做法是:直接由对象映射到表。

3.没有侵入性,移植性比較好。什么是没有侵入性?就是Hibernate採用了pojo对象。所谓的pojo对象就是没有继承Hibernate类或实现Hibernate接口。这种话,此类就是一个普通的java类,所以移植性比較好。

4.支持透明持久化。透明是针对上层而言的。三层架构的理念是上层对下层的依赖,仅仅是依赖接口不依赖详细实现。而Hibernate中的透明是指对业务逻辑层提供了一个接口session,而其它的都封装隐藏。持久化是指把内存中的数据存放到磁盘上的文件里。

3.当然一个事物,不可能十全十美,即使如此优秀的Hibernate也有自己的弱点。比方:若是大量数据批量操作。则不适合使用Hibernate。而且一个持久化对象不能映射到多张表中。

4.Hibernate中核心5个接口

1.Configuration接口:负责配置及启动Hibernate,用来创建sessionFactory

2.SessionFactory接口:一个SessionFactory相应一个数据源存储,也就是一个数据库相应一个SessionFactory。SessionFactory用来创建Session对象。而且SessionFactory是线程安全的,能够由多个线程訪问SessionFactory共享。

3.Session接口:这个接口是Hibernate中经常使用的接口,主要用于对数据的操作(增删改查)。而这个Session对象不是线程安全的。不能共享。

4.Query接口:用于数据库的查询对象。

5.Transaction接口:Hibernate事务接口。它封装了底层的事务操作,比方JTA(;java transcation architecture)全部的数据操作,比方增删改查都写在事务中。

主要的概念以及核心接口已经介绍,那Hibernate又是怎样应用的呢?下篇博客将会介绍怎样使用Hibernate?

最新文章

  1. 使用手机展示axure
  2. poj3311 Hie with the Pie (状态压缩dp,旅行商)
  3. python基础字符串操作
  4. iOS开发之Xcode 6 国际化
  5. Oracle数据文件管理
  6. TCP/IP详解学习笔记(10)-TCP连接的建立与中止
  7. POJ_2229_Sumsets_(动态规划)
  8. 杠杠做的全屏随鼠标滚动显示图片,类似于PPT效果
  9. JSP EL
  10. 详细介绍Spring 5的那些新特性与增强
  11. 深究ASP.NET Session
  12. mysql事务之间的隔离级别
  13. A1005. Spell It Right
  14. smarty安装与配置
  15. PO Release Final Closed 灾难恢复
  16. Samba远程代码执行漏洞(CVE-2017-7494)复现
  17. MySQL的各种SHOW
  18. Windows下 flex + bison 小例子
  19. nginx限制请求之三:Nginx+Lua+Redis 对请求进行限制
  20. Java判断一个字符串str不为空:方法及时间效率

热门文章

  1. NEC红外遥控协议理解与实现
  2. linux下维护服务器之常用命令
  3. codevs1040 统计单词个数
  4. Introduction to Big Data with Apache Spark 课程总结
  5. 《Java解惑》书摘
  6. orapwd创建密码文件
  7. Mvc4.0添加商品到Cookie
  8. 关于rem自适应的一点研究
  9. AES 加密,C#后台,javascript前台,crypt-js
  10. android开发时间和日期的代码实现工具类(一)