首页 > JDBC,Mybatis,hibernate 一些问题

JDBC,Mybatis,hibernate 一些问题

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

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

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

学 java Mybatis,hibernate 必须要学吗?


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

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

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

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

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

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


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

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

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

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


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性能要高。


hibernate和mybatis是orm框架,底层封装了jdbc,所以效率上肯定没有jdbc高,另外你也说了jdbc麻烦,所以前面的2个框架在封装jdbc的时候,抽取了重复的步骤,使得开发者避免了这些重复工作,开发更高效快速了。另外企业开发都讲究开发效率,节约成本,所以企业会大量使用。另外建议初学者不要这么快接触框架,先学好java se和java ee,做点东西,再去学框架,这样比较好理解;也会让你认识到开发大一点应用其实这些框架还是必须的:能提高很多开发效率


jdbc是基础,但是快速开发起来麻烦,于是产生了ORM,Hibernate是想向开发人员屏蔽关系数据库的模型,但是代价太大,学习成本高,需要搞懂对象的各种单向双向等关系;mybatis是半orm,同样也是提升效率,采取更轻量级的模式。

【热门文章】
【热门文章】