JDBC,Mybatis,hibernate 一些问题


已开始学习的是 JDBC 后来看了 hibernate,感觉比 JDBC 麻烦,又看了 Mybatis,还是感觉比 JDBC 麻烦,特别是配置 xml

而在网上看了很多 JDBC,Mybatis,hibernate 这3个对比,性能都没法和 JDBC 对比,那为什么还出现 Mybatis,hibernate 呢?

是不是因为是初学者,一些复杂的功能还没遇到?

学 java Mybatis,hibernate 必须要学吗?

hibernate mybatis java jdbc

Glamic 10 years, 4 months ago

jdbc sql都在class中的.比如未来的某一天,你需要改sql语句,你得找到源文件,修改sql.然后在编译成class.再放到服务器上,然后重启,生效.

如果框架呢.sql写在配置文件中,需要修改sql 改动配置文件就好了,(避免硬编码.)

hibernate企业开发中使用的概率逐渐减少.被mybatis取代.hibernate做稍复杂的查询不如sql来到简单.

如果您看过数据库操作框架的源码..就知道 底层还是jdbc来完成最数据库的链接的.

qwdfbn answered 10 years, 4 months ago

我想大大们都很忙,没时间回答,我就借题说下我了解一二。

JDBC是 操作数据库 很基础的部分,确实很麻烦,开发用它有着诸多不便(工作量上),所以有了后面几种封装后的框架。 这里多说点:它确实需要写很多东西,需要在意一些东西(如 做CRUD 时,大量数据的处理; 选择预编译的方式操作)。大公司会用这个,他们自己在这个基础上简单封装下,做些自己的处理,就可以拿来用了,他们技术能够支持,也能 提高一些性能

用后面的集成框架时能 提高开发的效率

mybatis 半自动化 的框架。 链接,释放,安全给你考虑的差不多了,就只需要你在xml去写 CRUD就ok了

hibernate: 全自动化框架。 这个不需要在xml写CRUD,在java代码里面写就ok

能大概看懂就成,现在这些也就是都用了一下,体会也不大深刻,以后有更深体验再补充。

西行寺幽々孒 answered 10 years, 4 months ago

Mybatis和hibernate是对JDBC进一步的封装,底层还是基于JDBC实现的。Hibernate用的不算深入,只谈自己对Mybatis使用的感觉,相对于直接使用JDBC有以下好处:
1、JDBC释放资源的写法很容易出错,使用框架后这个问题就基本不存在了。即使用JDBC,一般也要封装一个Util类来处理,如Srping的JDBC Template,否则每个SQL语句外面包一大坨try/catch语句太麻烦了。
2、对于常见的多个选择参数的查询页面,使用mybatis的标签很容易处理多个参数组合使用的情况,相比较写JDBC的拼接字符串要容易。
3、如果项目中使用的是java的实体类,使用Mybatis可以方便的实现数据库行和对象的映射,手工写JDBC的话这部分的代码量会比较大,而且重复性很高。

性能方面,如果只比较sql语句,JDBC的性能是最好的,毕竟Mybatis和hibernate封装JDBC后框架自身还是有开销的,但Mybatis和JDBC相比,性能应该差异不大。但考虑到这两个框架都自带了缓存机制,用好的话应该比单纯的JDBC性能要高。

霜是月魂魄 answered 10 years, 4 months ago

Your Answer