这2天公司的一个项目要求升级,从ibatis2升级到mybatis3.0.5版本,小弟感到压力很大。以前都是用hibernate(也不熟练),ibatis没看过,要升级更让我皱起眉毛,但是经理有令不能不行。于是想到了几个方案:
1.spring2.5.6 + mybatis3.0.4.这样的话不用升级spring,而且在google code上有个现成的例子
http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DSample。
2.手改,60多个xml文件手改,参照google code的文档:http://code.google.com/p/mybatis/wiki/DocUpgrade3,也
可以看中文翻译版的:http://kb.cnblogs.com/a/1598892/
了解一些mybatis基础后首先排除了第一个方案,参照mybatis的手册,spring3.0的开发在MyBatis3.0官方发布前就已经结束了,所以要整合2个框架需要通过mybatis-spring.jar。既然怎么都要修改spring的配置还不如一起升级了呢。
于是我又在iteye和oschina上分别提问,ibatis2.X升级到mybatis除了手改还有别的办法吗。不过大家的答案基本都是只能手改。后来在google code查看文档,发现一个 Conversion Tool,简单阅读提示后发现这是个转换的工具,于是就有了方案3:
3.Google code上有个Conversion Tool,可以help you to convert your iBATIS 2.x sqlmap files into MyBatis 3.x xml mapper files。
1.但是这个工具需要用apache ant来编译,首先要下载http://www.skycn.com/soft/51015.html
2.配置,添加环境变量:假设你解压到了F:\Ant\apache-ant-1.8.1
新增环境变量: ANT_HOME:F:\Ant\apache-ant-1.8.1 在path后追加:%ANT_HOME%\bin;
3.将需要转换的xml文件方到下载的工具包的source目录下,然后cmd进入这个文件夹,ant即可。
我在执行是一直报错java.net.ConnectException:connection time out
解决办法:
1.如果执行不成功,使用ant -v 查看具体信息。
Apache resolver library not found, internal resolver will be used
我遇到的第一个问题是缺少resolver.jar包。下载:http://download.csdn.net/source/3497319,然后导入为了保
证能找到,我同时放到了ant\lib和jre\lib下
2.执行后还是报错,使用ant -d 命令查看debug信息。新的提示信息:
resolveEntity:"-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"
...
No matching catalog entry found,parser will use:'http://www.ibatis.com/dtd/sql-map-2.dtd'
很明显,需要用的是mybatis-3-config.dtd和mybatis-3-mapper.dtd。进入build查看,没有用错,然后进入source查
看需要转换的xml文档,果然是这里引用了2.dtd而是转换时找不到需要替换的标签而出的问题。
3.修改完这个问题后,ant -d,看到有些编译还是失败了。但是进入destination目录发现mxl文档已经转换完成,像是
class--type,#userName#---#{userName}此类的转换都已经成功。只是对于ibatis的动态SQL不能很好的进行转换,这
些还需要手动修改,但对于60多个XML文档,这已经节省的很多的时间了。
缺陷:
1.无法解析<<typeAlias >因为Mybatis3要求<typeAlias>要放到sqlMapConfig.xml下
2.无法解析动态SQL
分享到:
相关推荐
Manning.iBATIS.in.Action.Jan.2007.eBook-BBL.pdf MyBatis 3 User Guide Simplified Chinese.pdf MyBatis-3.0.3-Migrations.pdf MyBatis-3.0.3-User-Guide.pdf MyBatis-3-Migrations.doc MyBatis-3-Migrations.pdf ...
ibatis 开发指南 ibatis Quick Start............................................................................................ 5 准备工作.................................................................
ibatis对于Java中的应用,可能在积极的促进。
JAVA之ibatis2.3.X.ppt
本文是个人在学习过程中的学习笔记,详细讲解了如何使用iBatis2.x以及如何将其与Struts2.x,Spring3.x进行整合开发,其中包括iBatis基础使用,存储过程调用和数据库函数的调用。
可以帮你将 ibatis 2.x sqlmap 文件转换为 myBatis 3.x mapper 文件,该工具是使用了 Ant 构建任务进行 XSTL 转换和一些语法文字替换 该工具下载下来使用非常简单,把你要转换的所有 sqlmap 文件放到 source 文件夹...
ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载,都已放入一个压缩包下。
IBatis.DataMapper.1.6.2 和 IBatis.DataMapper.1.9 开发包
ibatis struts2 spring3 mybatis 分页 crud 完整代码
struts2+ibatis2.x+spring2.5整合的一个demo 适合新手学习
org.apache.ibatis.logging.log4j2 org.apache.ibatis.logging.nologging org.apache.ibatis.logging.slf4j org.apache.ibatis.logging.stdout 对象适配器设计模式 2.异常 org.apache.ibatis.exceptions 3.缓存 ...
generator, A code generator for MyBatis and iBATIS.
搭建mybatis所需包org.apache.ibatis.annotations.Param @Param
ibatis-2.3.3.720.jar
ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战....
ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战....
ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战....
项目源码内有ibatis和log4j架包 博文链接:https://dr-yanglong.iteye.com/blog/1924763
NULL 博文链接:https://duanxx.iteye.com/blog/1846935