Hibernate其实是对JDBC一种轻量级的封装,楼下的某些朋友一看回答的水平就知道根本就没怎么接触过hibernate,今天我就给你好好的介绍下:Hibetnate一般用做持久层,刚刚也说过了时对JDBC的轻量级封装,传统的对数据库操作无疑是硬编码方式,但是这样做耦合度极高,是非常“化石”的写法,真正的企业级开发你是见不到这样做的,除非特殊情况,我们都知道,现在市面上所有的商用数据库,Oracle,DB2,SqlServer等等都是面向关系的,但是我们使用的编程语言如:c#,Java等等都是面向对象的,面向关系和面向对象之间的操作肯定是不会同步的,这就是我们首先选择Hibernate的一个重要原因,Hibernate完全是采用面向对象的方式来操纵数据库,使我们能够简化开发。对象之间的依赖关系,继承关系我们都可以采用Hibernate映射到数据库中,这是传统的JDBC望尘莫及的,JDBC查询数据基本上没任何优化可讲,哪怕是采用存储过程也仅仅是提高数据查询速度,根本解决不了大并发查询过程中对数据库造成的压力以及访问次数,但是Hibernate可以做到,采用Hibernate的一级缓存,二级缓存我们可以对数据库进行高性能优化,比如两条相同的查询语句,查询相同的数据,Hibernate首先会从数据库查找,第一次查询的时候,也会把查询的数据放入缓存中最备份,第二次查询的时候就不用访问数据库了,直接从缓存中获取,这就大大的优化的数据库。Hibernate本身支持传统的sql,也就是JDBC,当然不多用,也懒得用,因为Hibernate提供了面向对象的查询语句HQL,这样完全可以简化SQL语句和弥补面向关系数据库的不足之处。说了这么多,我也告诉你,Hibernate学起来难度还是有,尤其是对象之间的关联关系,one_to_many,many_to_one等等,是需要你花时间的,真正的企业级开发对数据库实施SRUD不仅仅会采用Hibernate,也会搭上存数过程连用,这样既可以提高访问速度,因为存储过程是预编译,也可以缓解数据库压力,也就是优化。所以请以后不懂Hibernate的人少答非所问。
其中session只是相当于connection,然query则相当于perparedstatement。供参考
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....