JDBC,Mybatis,hibernate 一些问题
已开始学习的是 JDBC 后来看了 hibernate,感觉比 JDBC 麻烦,又看了 Mybatis,还是感觉比 JDBC 麻烦,特别是配置 xml
而在网上看了很多 JDBC,Mybatis,hibernate 这3个对比,性能都没法和 JDBC 对比,那为什么还出现 Mybatis,hibernate 呢?
是不是因为是初学者,一些复杂的功能还没遇到?
学 java Mybatis,hibernate 必须要学吗?
Answers
我想大大们都很忙,没时间回答,我就借题说下我了解一二。
JDBC是 操作数据库 很基础的部分,确实很麻烦,开发用它有着诸多不便(工作量上),所以有了后面几种封装后的框架。 这里多说点:它确实需要写很多东西,需要在意一些东西(如 做CRUD 时,大量数据的处理; 选择预编译的方式操作)。大公司会用这个,他们自己在这个基础上简单封装下,做些自己的处理,就可以拿来用了,他们技术能够支持,也能
提高一些性能
。
用后面的集成框架时能
提高开发的效率
mybatis 半自动化 的框架。 链接,释放,安全给你考虑的差不多了,就只需要你在xml去写 CRUD就ok了
hibernate: 全自动化框架。 这个不需要在xml写CRUD,在java代码里面写就ok
能大概看懂就成,现在这些也就是都用了一下,体会也不大深刻,以后有更深体验再补充。
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性能要高。