JPA,Hibernate,ibatis(mybatis)如何选用?

转自:http://t.51jdy.cn/thread-259-1-1.html

传统的 业务系统,通常业务都比较复杂,懂业务的运维人员 对sql查询工具都比较熟悉。
这种以 数据库 为主的 业务场景 使用 以sql为主的持久层框架 例如:ibatis,mybatis
这种 性能优化的时候 sql 语句调整较为方便,甚至 业务人员 会直接提供 业务对于的 sql给开发人员。

对于快速迭代的中小型 新项目,适合使用hibernate(JPA + hibernate驱动)。
快速迭代 适合 使用面向对象的 持久层框架。在开发过程中 对象的变更非常频繁。
这种 持久层框架 适合 快速 重构 ,提高开发效率。
但是 这种框架 易学难精,用的不好就容易造成性能问题,用的好性能并不输于ibatis框架。
在做性能优化方面 可借助 缓存实现。  

Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。

Mybatis优势

  • MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
  • MyBatis容易掌握,而Hibernate门槛较高。

Hibernate优势

  • Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
  • Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
  • Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
  • Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

作者:乌拉拉
链接:https://www.zhihu.com/question/21104468/answer/58579295
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Hibernate全自动机枪,MyBatis半自动机枪,然后在高速射击数据库子弹的情况下,Hibernate容易卡壳,那时你就会说原来还是myBatis靠谱。。。

时间: 2024-11-09 22:22:10

JPA,Hibernate,ibatis(mybatis)如何选用?的相关文章

hibernate跟Mybatis/ ibatis 的区别,为什么选择?(转)

第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. 1.1 Hibernate 简介Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行.程序员往往只需定义好了POJO 到数据库表的映射关

Hibernate与Mybatis/iBatis的区别

由于公司近期要用MyBatis或Hibernate来进行dao层开发,所以对Hibernate和Mybatis做了一个简单的对比,不当之处还望大家指正 Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. 1. Hibernate 简介 Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了P

具体问题:3、hibernate跟Mybatis/ ibatis 的区别,为什么选择?

第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html Hibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/refe

Hibernate、Mybatis与Spring Data JPA的区别

1.概念: Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.属于全自动的ORM框架,着力点在于POJO和数据库表之间的映射,完成映射即可自动生成和执行sql. Mybatis:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .

对比JPA 和Hibernate 和 Mybatis的区别

1.JPA.Hibernate.Mybatis简单了解 1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现. 2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富(完全自动操作),只是性能不好控制(自己去控制性能,不是很好控制). Hibernate是一个完整的ORM框架,常规CRUD我们不需要写一句SQL; 3.MyBatis:本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和Dao,允许开发人员直接编写SQL(更好灵活).

JDBC、ibatis(mybatis)、Hibernate有什么不同?

①JDBC编程流程固定,同时将sql语句和java代码混在了一起,经常需要拼凑sql语句,细节很繁琐: ②ibatis(mybatis)它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象.但是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大. ③H

JPA、SpringData JPA 、Hibernate和Mybatis 的区别和联系

转自<JPA.SpringData JPA .Hibernate和Mybatis 的区别和联系> 一.JPA 概述 1. Java Persistence API(Java 持久层 API):用于对象持久化的 API 2. 作用:使得应用程序以统一的方式访问持久层 3. 前言中提到了 Hibernate,那么JPA 与 Hibernate究竟是什么关系呢: 1)JPA 是 Hibernate 的一个抽象,就像 JDBC 和 JDBC 驱动的关系 2)JPA 是一种 ORM 规范,是 Hiber

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

Hibernate 与 mybatis 区别

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结 我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还