myBatis,iBatis和hibernate的区别

一.定义

(1)myBatis是用于操作数据库的持久层框架;

(2)iBatis实际上就是myBatis前身,它相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现;

(3)Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行。

二、区别

(1)mybatis

优点:

  • 开发人员可以直接编写SQL,另外可以通过修改sql进行对数据库的优化;
  • sql可以编写,灵活多变,容易维护,容易学习

缺点:

  • 移植性不好,不支持数据库无关性,当数据库变更时需要编写多套代码;
  • 需要配置全局配置文件和接口和SQL的映射文件

(2)Hibernate

  • 标准的orm框架,开发人员不需要写sql;
  • 支持数据库无关性,切换数据库无需重新修改sql,只需要修改方言即可
  • 学习成本高,难于上手,需要对数据关系模型有良好的的基础
  • 开发人员不能自主的进行sql优化

三、mybatis和ibatis语法上的区别

(1)两种框架均支持sql片段

(2)ibatis中##与mybatis中的#{}一样,$$与${}一样;

(3)判断语句

     MyBatis的很简单,只要在where 或者if  的标签里面添加test=""就可以了,里面写判断条件了。
     IBatis的就麻烦了许多了,它将每个都方法都进行了封装,如
例如:
isNull:判断property字段是否是null        
   
 

 

你可能感兴趣的:(框架)