hibernate和jdbc有什么区别?(面试题)

详细点!!!... 详细点!!! 展开
 我来答
匿名用户
2013-03-30
展开全部
hibernate和Jdbc?两个之间基本不是个级别的,hibernate包括了jdbc,jdbc是java用来连接,访问数据库的,hibernate需要封装jdbc才能运行。
jdbc连接数据库和hibernate大致相同,因为hibernate只是将配置信息写入到xml文件中,剩下连接数据库,访问数据库都要通过jdbc的。
hibernate是一个持久层框架,hibernate将表的信息映射到xml文件中,再从xml文件映射到相应的持久化类中,这样可以使用hibernate独特的查询语言hql了。而jdbc访问数据库是通过sql语句直接访问的。hibernate的hql查询语句返回的是List<Object[]>类,而jdbc通过statement返回的查询结果是ResultSet并且有时候需要自己封装到List中。
hibernate其重要区别在于hibernate具有访问层(DAO类层),该层是HQL查询语句唯一出现的位置,再往上层则不会出现查询语句,而jdbc可以随时连接随时访问,试想如果1000个类都有sql查询语句,如果表名变了是不是要全部重写1000个类的查询语句呢?hibernate只需要将DAO层的类变了就行了,上层毫无关系,对数据维护有重要作用。
再者,使用jdbc依然可以建立DAO层,但是却需要大量的代码支持,而hibernate自己就有,不用编写。
应该说全了吧。。。。
驻云客
2013-03-29 · TA获得超过977个赞
知道小有建树答主
回答量:577
采纳率:0%
帮助的人:337万
展开全部
相同点:
1 两者都是JAVA的数据库操作中间件。
2 两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。
3 两者都可以对数据库的更新操作进行显式的事务处理。

不同点:
1 使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言
2 操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。
3 数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdmzshja
2013-03-29 · 超过10用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:31.8万
展开全部
Hibernate是一个基于JDBC的主流持久化框架,对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
hibernate使用Java反射机制,而不是字节码增强程序来实现透明性,如对数据库操作hibernate会直接返回一个对象或传入一个对象,而jdbc确实返回一个值或传入一个值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神户牛肉520
2013-04-03
知道答主
回答量:42
采纳率:0%
帮助的人:15.7万
展开全部
各有各的好处,其实hibernate就是对jdbc的封装,jdbc效率高,但操作麻烦,hibernate操作方便,但是效率比jdbc低。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-01
展开全部
其实面试题的话没必要记住那么多的条条框框的,如果你不知道这个问题的话应该是个新手吧,主要让面试你的人知道你会用就行,面试不是学校的考试,有时候卡卡列几条出来不见得好,把核心的精髓用自己话表达出来就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式