Search code examples
ibatismybatis

iBatis to MyBatis migration efforts?


I am using iBatis-2.3.4.726 in my production application. I want to migrate my production application to use MyBatis.

What points i need to consider while migration process?

Is there any configuration changes or MyBatis supports iBatis configuration as deprecated commands?


Solution

  • Before using migration guide mentioned by Satish (new repo link / wiki), make sure that you've read all the comments, especially the last one that list which changes have to be done manually after using converter:

    • <procedure> is deprecated in mybatis. Converter is changing this to <update>. This will create problems where we need result set from procedure call. So manually updated with <select>.
    • Dynamic query part mentioned inside <dynamic> tag are not converted by tool
    • Both # and $ can be escaped by doubling in iBatis. This is not required in mybatis.
    • typeAlias should be defined in sql-map-config instead of mapper itself.
    • When result map with groupBy changed into mybatis style using collection, id property is not set properly by the converter.
    • jdbcType="INT" is not recognized in mybatis. Updated to "INTEGER"
    • nullValue in resultMap deprecated, we need to update query with ISNULL expression.

    What I'd like to add is that converter seems to drop timeout parameter that could be present in <procedure> tag in iBatis. Make sure to copy all occurences to the generated XML.