Hibernate框架(DAO层框架)的一些知识点

       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。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值