接触了hibernate框架有大半年了,几乎做的每个项目都在用,有必要深入研究其内部一些运行机制。虽然不了解,对开发也影响不大。
好了,废话不多说,讲讲我对hibernate的个人理解吧。
有过jdbc编程的人应该知道,我们连接数据库要做几个步骤,先获取connection,接着statement,接着result...很繁琐。
hibernate的会话替代了以上操作,可以说一个会话,开启事务,你就能操作数据库了,然后提交事务,关闭会话。
算了,对比jdbc步骤也少不了多少。它的优点体现在面向对象、缓存、事务。
面向对象:hql编程, 形如“From User”Hql语句,更具面对对象,还有表的关系映射成类与类之间的关系,什么一对多、多对多。
缓存: session一级缓存,打开会话创建,关闭会话销毁,生命周期一般都很短,有效优化数据库。比如说,减少不必要的select查询、懒加载等等。
事务:hibernate是可以设置事务级别的,根据需求来定事务级别,级别越高,并发性越差。想了解事务可以看下面有关mysql隔离级别的例子、缓存和事务等两篇文章,应该对你有一些帮助。手把手教你认识事务到底是什么?脏数据 - > 不可重复读 - > 幻读 ,这些都是事务并发造成,当然事务串行执行,也没这么多问题,但这样效率会很低。
引用几篇文章,对于hibernate入门有很大帮助。
了解mysql隔离级别 http:///taylor_tao/article/details/7063639
hibernate 瞬时态、持久态、游离态 http:///liu_yujie2011com/article/details/40654073
一级缓存、二级缓存测试例子 http://www.360doc.com/content/14/0801/16/1073512_398635409.shtml
hibernate 的list方法和 iterate方法 http:///hz_blog/article/details/7537121
缓存和事务 http:///huashetianzu/article/details/7962610