iBatis详解以及和MyBatis区别

iBatis详解以及和MyBatis区别

iBatis的全局配置文件命名为 sqlMapConfig.xml,
iBatis配置文件的根元素为 ,
iBatis指定映射文件的元素为 ,以及 等;
iBatis仅是以SQL映射为核心的框架;

MyBatis全局配置文件命名为Configuration.xml
而在MyBatis中多以Mapper、Session、Configuration、等
其他常用ORM框架中的名字代替;

一、配置文件的根元素

iBatis 配置文件的根元素是 ,
iBatis 配置文件的根元素是 ,

MyBatis配置文件的根元素是
而MyBatis使用的是

二、设置属性用法发生了改变

的用法发生了改变:

1、iBatis中【设置属性】的方式:

2、MyBatis中设置属性的方式:


三、指定【映射文件】的方式区别:

iBatis中指定映射文件的方式:

MyBatis中指定映射文件的方式:

四、SQL文件的根元素不同:

iBatis中SQL文件的根元素为;
MyBatis中SQL文件的根元素为;

五、Select语句的中的出入参数类型发生了变化

元素的iBatis的columnIndex 属性被移除了

1)、入参类型不同:
iBatis中元素的入参类型为parameterClass;
myBatis中元素的入参类型为parameterType。

2)、出参类型(返回结果类型)不同:
iBatis中元素的出参类型(返回结果类型)为resultClasss;
myBatis中元素的出参(返回结果类型)类型为resultType。

3)、返回结果集接受方式不同;
iBatis中结果集返回到class;

 <parameterMap class="java.util.Map" id="pro_app_testMap">
     <parameter property="p_userid" jdbcType="NUMBER" javaType="java.lang.Long" mode="IN" />
     <parameter property="p_pid" jdbcType="NUMBER" javaType="java.lang.Integer" mode="OUT" />
 </parameterMap>
  
 <procedure id="pro_app_test" parameterMap="pro_app_testMap">
        {call pro_app_test(?,?,?)}
 </procedure>

  myBatis中<select>结果集返回到type;

  ResultMap和ResultType,都是用来表示查询结果集与java对象之间的一种关系,
  将查询结果集,按照某种关系映射到java对象。

六、SQL中接收外部传参方式改变;

  iBatis中接收外部传参方式使用 #value#;
  MyBatis中接收外部传参方式使用 #{value}

  #{command}、#command#  --- 具有预编译效果;
  ${command} --- 不具有预编译效果 

七、SQL中参数类型发生了改变;

 iBatis的NUMBER取值改为了MyBatis的NUMERIC。

八、SQL中调用存储过程发生了改变;

 iBatis中调用存储过程的方式:

 iBatis通过使用<procedure>元素进行存储过程的定义:
<procedure id="" parameterMap="">
        {? = call  pkgExample.getValues(p_id=>?)}
</procedure>

MyBatis中调用存储过程的方式:
通过 <select>、<insert> 和<update>进行定义:
{ ? = call pkgExample.getValues(p_id => ?) } 通过statementType属性将该语句标识为存储过程.

九、Dao层代码结构发生了改变;

代码层面的改变:

ibatis : SqlMapClient;
SqlMapClient 执行SQL语句:( http://t.zoukankan.com/lcngu-p-5122940.html )

MyBatis : SqlSessionFactory ;
SqlSessionFactory介绍: ( https://blog.csdn.net/weixin_45941064/article/details/124397112 )

类型处理器接口:

ibatis : TypeHandlerCallback ;
MyBatis : TypeHandler ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值