Hibernate框架(DAO层框架)的一些知识点
2018-02-03 21:53
302 查看
Hibernate是一个开放源代码的对象关系映射框架,对JDBC访问数据库进行了轻量级的封装,减少数据访问层的代码。将POJO与数据库表建立映射关系,是一个全自动的orm框架。支持很多关系性数据,从以到多到多各种映射。不需要写sql语句,直接用对象对数据库进行操作。
Hibernate的工作原理:(1)读取并解析配置文件;(2)读取并解析映射我呢间,创建SessionFactory;(3)打开Session;(4)创建事务Transation;(5)持久化操作;(6)提交事务;(7)关闭Session;(8)关闭SessionFactory
Hibernate的特点:(1)对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码;(2)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它在很大程度的简化了DAO层的编码工作;(3)hibernate使用Java反射机制,而不是字节码增强程序实现透明性;(4)hibernate的性能非常好,因为hibernate是轻量级框架,映射的灵活性很出色,支持各种关系性数据库,从一对一到多对多的各种复杂关系。
Hibernate的延迟加载:(1)Hibernate2延迟加载实现:a.实体对象;b.集合(Collection); (2)Hibernate3提供了属性的延迟加载功能。当Hibernate在查询数据的时候,数据并没有存在于内存中,当程序真正对数据操作时,对象才存在于内存中,就实现延迟加载,节省了服务器的内存开销,从而提高了服务器的性能。
Hibernate中实现类之间的关系(如:一对多、多对多关系):类与类直接的关系主要体现在表与表之间的关系进行操作,他们都是对对象进行操作,在程序中把所有的表和类都映射在一起,通过配置文件的many-to-one、one-to-many、many-to-many。
Hibernate中的几种查询数据方式:hql查询、sql查询、条件查询。、
load( )和get( )的区别:hibernate对于load( )方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,load默认支持延迟加载,在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常ObjectNotFoundException;load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理(load之后查询一级缓存,不存在则创建代理)。get(
)先在一级缓存查找,没有就去二级缓存找,没有就去数据库找,没有就返回null:而对于get方法,hibernate一定获取到真实的数据,否则就返回null。
Hibernate的工作原理:(1)读取并解析配置文件;(2)读取并解析映射我呢间,创建SessionFactory;(3)打开Session;(4)创建事务Transation;(5)持久化操作;(6)提交事务;(7)关闭Session;(8)关闭SessionFactory
Hibernate的特点:(1)对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码;(2)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它在很大程度的简化了DAO层的编码工作;(3)hibernate使用Java反射机制,而不是字节码增强程序实现透明性;(4)hibernate的性能非常好,因为hibernate是轻量级框架,映射的灵活性很出色,支持各种关系性数据库,从一对一到多对多的各种复杂关系。
Hibernate的延迟加载:(1)Hibernate2延迟加载实现:a.实体对象;b.集合(Collection); (2)Hibernate3提供了属性的延迟加载功能。当Hibernate在查询数据的时候,数据并没有存在于内存中,当程序真正对数据操作时,对象才存在于内存中,就实现延迟加载,节省了服务器的内存开销,从而提高了服务器的性能。
Hibernate中实现类之间的关系(如:一对多、多对多关系):类与类直接的关系主要体现在表与表之间的关系进行操作,他们都是对对象进行操作,在程序中把所有的表和类都映射在一起,通过配置文件的many-to-one、one-to-many、many-to-many。
Hibernate中的几种查询数据方式:hql查询、sql查询、条件查询。、
load( )和get( )的区别:hibernate对于load( )方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,load默认支持延迟加载,在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常ObjectNotFoundException;load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理(load之后查询一级缓存,不存在则创建代理)。get(
)先在一级缓存查找,没有就去二级缓存找,没有就去数据库找,没有就返回null:而对于get方法,hibernate一定获取到真实的数据,否则就返回null。
相关文章推荐
- Spring_MVC+Hibernate的一些小记录(有错误或者不明白的可以大家相互讨论一下,本人刚刚涉足框架技术,谢谢!)
- 【JAVA开发框架】Hibernate框架知识点详解入门教程与测试实例
- 自学hibernate框架以及自己总结的一些经验(一)
- Hibernate框架知识点总结
- Hibernate的一些知识点
- 【框架】[Hibernate]构架知识点常见操作
- SSH2框架Hibernate一些配置
- ForkJoin框架的一些原理知识点
- 【ssh2学习记录】3、关于ssh2框架整合以及hibernate的一些总结
- 基于Hibernate框架的泛型DAO层---SwiftDAO
- 集合框架的一些知识点
- Hibernate中的一些小知识点
- 【框架】[Hibernate]构架知识点详解入门与测试实例
- IOS开发基础—关于uikit框架里面uiview类的一些知识点
- Hibernate框架的相关知识点及面试题
- 通过Hibernate框架搭建简单的dao层
- 企业关注技能知识点【Hibernate框架】
- 【框架】[Hibernate]构架知识点详解入门与测试实例
- hibernate框架的核心对象和相关知识点
- 配置spring+hibernate基本框架时的一些低级错误(网摘)