iBatis和Hibernate之间有着较大的差异,但两者解决方案很好,因为他们有特定的领域。我个人建议使用MyBatis的,如果:

  • 你想创建自己的SQL,并愿意维持他们.

  • 你的环境是由关系数据模型驱动的。

  • 你的项目工作有复杂架构的。

简单地要使用Hibernate,如果:

  • 你的环境是由对象模型驱动的,并希望自动生成的SQL。

要计算的一些区别:

  • MyBatis:

    • 简单

    • 更快的开发时间

    • 灵活

    • 封装尺寸更小

  • Hibernate:

    • 为你生成SQL,这意味着你不用花时间在SQL上。

    • 提供了许多更先进的高速缓存

    • 高可扩展性

另一个区别是,MyBatis利用SQL语句可能是依赖数据库,使用Hibernate的HQL是相对独立于数据库,它是更容易改变数据库。

Hibernate映射的Java作为POJO对象,MyBatis将ResultSet映射,从JDBC API给出POJO OBJETS的数据库表。

如果您使用存储过程,那么在Hibernate中可以做到这一点,但它在MyBatis比较有点困难。作为一种替代的解决方案MyBatis的映射结果集对象,所以没必要去关心表结构。这非常适用于存储过程,非常适用于报表应用程序等

最后,Hibernate和MyBatis的都是开源的对象关系映射(ORM)在同行业中可用的工具。使用这些工具的取决于你。Hibernate和MyBatis两者也有来自Spring框架的良好支持,以便它不应该是一个问题,选择其中之一。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优势

MyBatis知多少(5)业务对象模型

MyBatis知多少(6)表现层与业务逻辑层

MyBatis知多少(7)持久层

MyBatis知多少(8)关系型数据库

MyBatis知多少(9)不同类型的数据库

MyBatis知多少(10)应用程序数据库

MyBatis知多少(11)企业数据库

MyBatis知多少(12)私有数据库

MyBatis知多少(13)MyBatis如何解决数据库的常见问题

MyBatis知多少(14)分散的数据库系统

MyBatis知多少(15)数据模型

MyBatis知多少(16)MyBatis映射

MyBatis知多少(17)MyBatis和JDBC

MyBatis知多少(18)MyBatis系统

MyBatis知多少(19)MyBatis操作

MyBatis知多少(20)MyBatis读取操作

MyBatis知多少(21)更新操作

MyBatis知多少(22)MyBatis删除操作

MyBatis知多少(23)MyBatis结果映射

MyBatis知多少(24)存储过程

MyBatis知多少(25)动态SQL

MyBatis知多少(26)调试

MyBatis知多少(26)MyBatis和Hibernate区别的更多相关文章

  1. mybatis 于 hibernate区别

    两者区别是还是非常大的,结合至今为止的经验,总结出以下几点: 1. hibernate是全自动,而mybatis是半自动. hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的Ja ...

  2. Mybatis与Hibernate区别

    Mybatis与Hibernate区别 mybatis: 1. 入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美 ...

  3. MyBatis知多少(26)调试

    这是很容易,同时与iBATIS的工作程序进行调试. iBATIS有内置的日志支持,并适用于下列日志库,并在这个顺序搜索他们. Jakarta Commons日志记录(JCL). Log4J JDK 日 ...

  4. mybatis&Hibernate区别

    mybatis是一个不完全的orm框架,因为mybatis需要程序员自己写大量的sql,需要程序员对sql的掌握比较高,不过mybatis可以通过xml文件可以灵活的配置要运行的sql语句,将sql与 ...

  5. MyBatis Mapper.xml文件中 $和#的区别

    MyBatis Mapper.xml文件中 $和#的区别   网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...

  6. MyBatis知多少(25)动态SQL

    使用动态查询是MyBatis一个非常强大的功能.有时你已经改变WHERE子句条件的基础上你的参数对象的状态.在这种情况下的MyBatis提供了一组可以映射语句中使用,以提高SQL语句的重用性和灵活性的 ...

  7. MyBatis知多少(24)存储过程

    使用MyBatis配置来调用存储过程.为了理解这一章,首先需要了解我们是如何在MySQL中创建一个存储过程. 在继续对本节学习之前,可以自行学习MySQL存储过程. 我们已经在MySQL下有EMPLO ...

  8. MyBatis知多少(23)MyBatis结果映射

    resultMap的元素是在MyBatis的最重要和最强大的元素.您可以通过使用MyBatis的结果映射减少高达90%的JDBC编码,在某些情况下,可以让你做JDBC不支持的事情. ResultMap ...

  9. MyBatis知多少(22)MyBatis删除操作

    本节从表中使用MyBatis删除记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, f ...

随机推荐

  1. Atitit. .net c# web 跟客户端winform 的ui控件结构比较

    Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net   4.5 webform Winform 命名空间 System.Web.UI.WebControls ...

  2. atitit.提升2--3倍开发效率--cbb体系的建设..

    atitit.提升开发效率--cbb体系的建设.. #--提升倍数,大概2--3倍.. #---cbb的内容 知识的,expt的,经验的技术的部件的问题库的角度.. #---cbb的层次,tech l ...

  3. 深入理解HTML5:语义、标准与样式(勇猛精进早登大师殿堂创最优品质交互)

    深入理解HTML5:语义.标准与样式(勇猛精进早登大师殿堂创最优品质交互) [美]布拉德福(Bradford,A.) [美]海涅(Haine,P.)著 高京译 ISBN 978-7-121-20552 ...

  4. iOS---性能优化

    最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧.小结如下. Instruments使用技巧 关于Instruments官方有一个很有 ...

  5. SSL在https和MySQL中的原理思考

    之前对HTTPS通信过程有过了解,HTTPS是应用HTTP协议使用SSL加密的版本,在TCP和HTTP之间增加SSL协议.通过握手阶段认证双方身份,协商对称秘钥对通信信息进行加密.此处只描述常用的服务 ...

  6. SSD在SQLServer中的应用

        一. 首先,回顾一下 SSD 的读写特性 (1)有限次数写:        (2)随机读性能最好:        (3)顺序读性能好:        (4)顺序写性能差:        (5) ...

  7. 解决.Net 4.0 A potentially dangerous Request.Form value was detected from the client 异常

    在web.config中加入 <httpRuntime maxRequestLength="22000" executionTimeout="43200" ...

  8. eclipse、myeclipse,svn插件subclipse 忘记密码的解决方法(win7、win8、xp)

    如果是Windows7.Windows8系统只要删除当前用户目录下的AppData\Roaming\Subversion\auth\svn.simple 比如我的用户名taoweiji,就删除C:\U ...

  9. activemq安装和启动

    安装环境:linux redhat activemq版本:5.8.0 1.从http://activemq.apache.org/download.html地址下载apache-activemq-5. ...

  10. HTTP基本认证(Basic Authentication)的JAVA示例

    大家在登录网站的时候,大部分时候是通过一个表单提交登录信息.但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证.下面来看看一看这个认证的工作过程:第一步:  客户端发送ht ...