ibatis迁移到mybatis3的注意事项

网友投稿 420 2023-03-26


ibatis迁移到mybatis3的注意事项

DocUpgrade3

这一页提供了一些当你从ibatis迁移到mybatis3时非常有用的信息。不能保证100%的完整。

这个项目现在的地址是 github https://github.com/mybatis/ibatis2mybatis

转换工具

在下载区有一个可用的工具,可以帮你将iBATIS 2.x sqlmap文件转换为MyBatis 3.x xml mapper文件。

从这里获取 http://mybatis.googlecode.com/files/ibatis2mybatis.zip

该工具是一个封装在Ant任务围绕XSTL转换和一些文字替换,并试图在复杂的工作开始之前提供一个良好的起点。

新的DTDs

新的sqlMapConfig.xml DTD:

新的sqlMap (*.map.xml) DTD:

Configuration配置

配置根节点从  变成 

Settings配置

在配置的根节点:

现在是:

然后

这个配置可以删除掉,因为使用命名空间已经是一个强制的特性。

别名

必须从 元素移动到 这里

...

变成:

变成:

Mapping

根元素从  变成 

parameterClass属性必须改成parameterType

resultClass属性必须改成resultType

class属性必须改成type

columnIndex不在 标签中使用

groupBy属性已经被废弃。下面是一个 2.x sqlMap的groupBy 例子:

新的:

Nested resultMaps嵌套的resultMaps

现在需要使用 标签指定.

...

需要改成:

...

虽然这个标签被废弃了,但是他仍然可以在iBatis 2中使用。但是对3.0.3以上版本当使用type="map"时有一个bug,并不指定 javaType 参数。这将导致:

There is no getter for property named '...' in 'interface java.util.Map'

这将会在MyBatis 3.0.4中解决,对3.0.3版本或更早的版本解决的方法是显示的指定javaType

Inline parameters内联参数

#value#

需要改成:

#{value}

jdbcType changes jdbcType变化

jdbcType="ORACLECURSOR"

需要改成:

jdbcType="CURSOR"

还有

jdbcType="NUMBER"

需要改成:

jdbcType="NUMERIC"

Stored procedures存储过程

存储过程的标签已经不存在了,需要使用

{ ? = call pkgExample.getValues(p_id => ?) }

需要改成:

{ ? = call pkgExample.getValues(p_id => ?)}

如果你调用一个insert的带返回值的存储过程,你可以使用

对返回数据集的存储过程,当使用嵌套的resultMap时,这儿有一个bug  (例如:出参resultMap包含一个 标签). 只要问题没有解决,你必须自己将resultMap定义好,或者嵌套的内容不会被填充。

Caching缓存

需要改为:

注意:你可以忽略eviction="LRU",因为他是默认值。.

 标签被flushCache属性所替代。缓存默认会被所有的查询语句使用。

Dynamic SQL动态SQL

在我的项目中最常用的的动态SQL是isNotNull. 下面是替换正则表达式的示例:

正则表达式:

需要改为:

isEqual最常用,你可以使用类似的 标签替代.

SqlMapClient

这个类已经不存在了,使用SqlSessionFactory替代 (详细内容看Mybatis文档).

Custom type handler

用 TypeHandler 替换接口 TypeHandlerCallback。它具有稍有不同,但方法类似。

Custom data source factory

旧的接口:

com.ibatis.sqlmap.engine.datasource.DataSourceFactory

新的接口:

org.apache.ibatis.datasource.DataSourceFactory

替换下面的方法

public void initialize(Map properties)

为:

public void setProperties(Properties props)

总结

以上所述是给大家介绍的ibatis迁移到mybatis3的注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Bootstrap图片轮播效果详解
下一篇:Spring5源码解析之Spring中的异步和计划任务
相关文章

 发表评论

暂时没有评论,来抢沙发吧~