ibatis迁移mybatis详细方案(含脚本和注意事项)

本文介绍了将ibatis应用程序迁移到mybatis的详细步骤,包括使用转换工具处理sqlmap文件,手动修复转换错误,调整DAO类以适配SqlSessionTemplate,以及数据源配置变更。转换过程涉及jdbcType的调整、动态SQL标签的处理和sql语句的检查。建议采用适配器模式或脚本批量修改以降低工作量。
摘要由CSDN通过智能技术生成

小小的声明:该文章已优先发在阿里内网博客


ibatis已成过去式,官方早已不再维护,使用ibatis的老应用迁移到mybatis很有必要,且好用的服务层框架springboot集成了mybatis,支持维护良好,更加说明了迁移到mybatis的重要性,下面详细说明整个迁移流程

1.使用 ibatis到mybatis的map文件转换工具

转换工具:ibatis2mybatis
可以帮你将ibatis 2.x sqlmap文件转换为myBatis 3.x mapper文件,该工具是使用了Ant构建任务进行XSTL转换和一些语法文字替换
该工具下载下来使用非常简单,把你要转换的所有sqlmap文件放到source文件夹,然后在当前目录直接运行ant命令即可,转换成功的mapper文件放在了destination文件夹下。不过遗憾的是,ant命令并不总是运行成功,跟你的sqlmap文件有关,比如我当时转换时报错如下:

BUILD FAILED
/Users/zhumin/Documents/ibatis2mybatis-ibatis2mybatis-1.0/build.xml:24: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: unknown protocol: classpath
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:749)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at org.apache.tools.ant.taskdefs.optional.TraXLiaison.transform(TraXLiaison.java:197)
at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:844)
at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:434)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
at org.apache.tools.ant.Project.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值