`
Jerrick
  • 浏览: 19786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

ibatis2.X升级mybatis3.X之曲径通幽处

阅读更多

这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

 

分享到:
评论

相关推荐

    适用于IDEA2020.3.X的Mybatis生成插件

    MyBatisCodeHelper-Pro是一款专为IntelliJ IDEA 2020.3.X版本设计的高效Mybatis代码生成插件。这款插件极大地提升了开发人员在使用Mybatis框架时的生产力,通过自动生成常见的Mapper接口、XML配置文件、Service以及...

    ibatis、mybatis官方教程文档集合(含Manning.iBATIS.in.Action)

    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 ...

    Ibatis2.x学习实战

    【Ibatis2.x学习实战】 Ibatis,全称MyBatis,是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。在2.x版本中,Ibatis主要帮助开发者将SQL语句与Java代码分离,提供了一种灵活的数据库访问方式,...

    Eclipse Spring3.x集成ibatis2.x开发案例

    标题 "Eclipse Spring3.x集成ibatis2.x开发案例" 提供了我们即将探讨的核心内容:如何在Eclipse环境中利用Spring3.x版本与iBatis2.x版本进行整合开发。这个主题涵盖了Java企业级开发中的两个重要框架,Spring作为...

    从iBatis迁移到MyBatis

    标题 "从iBatis迁移到MyBatis" 暗示了本次讨论的主题是关于数据库持久层框架的升级,从较早的iBatis转向更现代的MyBatis。iBatis是一个Java语言中的SQL映射框架,而MyBatis是在iBatis的基础上发展起来的,提供了更多...

    JAVA之ibatis2.3.X

    ibatis对于Java中的应用,可能在积极的促进。

    springboot2.x整合redis做mybatis的二级缓存

    在MyBatis中配置二级缓存,我们需要编写一个自定义的Cache实现类,该类继承自`org.apache.ibatis.cache.Cache`接口。这里我们将使用RedisTemplate来存储和检索缓存数据: ```java import org.apache.ibatis....

    SSI-iBatis2.x

    本文是个人在学习过程中的学习笔记,详细讲解了如何使用iBatis2.x以及如何将其与Struts2.x,Spring3.x进行整合开发,其中包括iBatis基础使用,存储过程调用和数据库函数的调用。

    ibatis2.3.X培训PPT

    【标题】"ibatis2.3.X培训PPT"涵盖了关于MyBatis(原名iBatis)2.3.x版本的核心概念与实践应用。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。本培训材料主要针对初学者和有一定经验的...

    iBatis2.X入门附带完整项目

    iBatis 2.X 是一款流行的数据...这是一个很好的起点,让你能够熟练地运用iBatis进行数据访问,并为后续的MyBatis 3.X或其他ORM框架的学习打下基础。在实践中不断探索和积累经验,你将能更深入地理解和应用这些技术。

    ibatis2mybatis-master

    可以帮你将 ibatis 2.x sqlmap 文件转换为 myBatis 3.x mapper 文件,该工具是使用了 Ant 构建任务进行 XSTL 转换和一些语法文字替换 该工具下载下来使用非常简单,把你要转换的所有 sqlmap 文件放到 source 文件夹...

    ibatis2.3.4.8.jar 和 ibatis-2.3.4.726.jar两个版本的下载

    2. 配置Ibatis的主配置文件(mybatis-config.xml),设置数据源、事务管理器等核心参数。 3. 创建SQL映射文件,编写SQL语句,并定义结果映射。 4. 在Java代码中创建SqlSessionFactory,然后通过SqlSessionFactory...

    基于Java语言的iBATIS 2.x设计源码深度解析

    本项目深入解析了基于Java语言的iBATIS 2.x框架设计源码,包含292个Java源文件、25个XML配置文件、11个SQL语句、5个属性文件、4个YAML文件、2个DTD文件及其他相关文件,共计348个文件。

    ibatis2.rar

    "ibatis2.rar"这个压缩包文件包含了关于iBATIS 2.x版本的学习资料,主要包括了iBATIS与Spring的集成以及环境搭建的相关教程。 《iBATIS与Spring集成及环境搭建 - 振华 - ITeye技术网站.htm》这篇文档可能详细介绍了...

    ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载

    - **ibatis-2.3.4.726.jar**:这是iBATIS 2.x系列的较新版本,可能包含了一些bug修复、性能优化和新的特性。例如,可能会对之前版本的不稳定性问题进行了改进,或者添加了对某些数据库方言的支持。 - **ibatis-2.3....

    ibatis2mybatis-master.zip

    标题“ibatis2mybatis-master.zip”所指的是一款工具或服务,用于将基于iBATIS的数据访问框架的代码自动转换为使用MyBatis框架的代码。iBATIS和MyBatis都是Java开发中常用的持久层框架,它们帮助开发者简化数据库...

    eclipse开发的ssi整合struts2+ibatis2.x+spring2.5

    在IT行业中,集成Struts2、iBatis2.x和Spring2.5是常见的企业级应用开发模式,这种架构被称为“SSH”(Struts、Spring、Hibernate)的变种,因为iBatis替代了传统的Hibernate作为持久层框架。Eclipse作为Java开发的...

Global site tag (gtag.js) - Google Analytics