[JAVA] Von iBATIS zu MyBatis3 verschoben

Ich habe endlich mein altes System, das mit Spring + iBATIS erstellt wurde, auf Spring + MyBatis3 migriert. Ich habe mehrmals versucht, zu migrieren, aber die Anzahl der SQL-Definitionsdateien überschreitet 1000, und die manuelle Migration in die Definitionsdatei für MyBatis dauert zu lange. Offiziell? Tool funktionierte nicht gut, also gab ich auf. Wenn ich jedoch nicht auf MyBatis migrieren konnte, konnte ich die Version von Spring nicht aktualisieren. Daher hielt ich es für umständlich. Daher erstellte ich ein Migrationstool für Definitionsdateien und schloss die Migration sicher ab. Ich glaube nicht, dass es viel Nachfrage gibt, aber ich habe beschlossen, es öffentlich zu machen, damit es denjenigen hilft, die irgendwo in Schwierigkeiten sind.

Ich konnte mit den offiziellen Tools nicht erfolgreich migrieren

Mybatis / ibatis2mybatis auf GitHub scheint das offizielle Tool zu sein, aber ich habe mich für ein Migrationstool entschieden, da dieses Tool in den folgenden Fällen nicht erfolgreich migriert werden konnte tat. (Ich denke, es gab andere, aber ich habe vergessen ...)

Migrationsarbeit

Bibliotheksänderungen

Vorher ändern

compile group: 'org.apache.ibatis', name: 'ibatis-sqlmap', version: '2.3.4.726'

Nach der veränderung

compile group: 'org.mybatis', name: 'mybatis', version: '3.4.5'
compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.1'

Einstellungen ändern

Vorher ändern

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" scope="singleton">
  <property name="configLocations">
    <list>
       <value>classpath:/ibatis.xml</value>
    </list>
  </property>
  <property name="dataSource" ref="dataSource" />
</bean>

Nach der veränderung

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mapperLocations" value="classpath*:/mybatis/**/*.xml" />
  <property name="configuration">
    <bean class="org.apache.ibatis.session.Configuration">
      <property name="callSettersOnNulls" value="true"/>
      <property name="returnInstanceForEmptyRow" value="true"/>
    </bean>
  </property>
</bean>

Codeänderungen

Vorher ändern

public class Dao extends SqlMapClientDaoSupport {
    public Object find(String id) throws SQLException {
        return getSqlMapClient().queryForObject(id);
    }
    public List findList(String id) throws SQLException {
        return getSqlMapClient().queryForList(id);
    }
}

Nach der veränderung

public class Dao extends SqlSessionDaoSupport {
    public Object find(String id) throws SQLException {
        return getSqlSession().selectOne(id);
    }
    public List findList(String id) throws SQLException {
        return getSqlSession().selectList(id);
    }
}

Migrieren Sie die sqlMap-Datei in die Mapper-Datei

Ich habe ein Tool zum Migrieren der iBATIS sqlMap-Datei in die MyBatis-Mapper-Datei erstellt, daher werde ich es verwenden. Zum Ausführen dieses Tools ist ein JDK erforderlich. Installieren Sie es daher im Voraus.

GitHub - ogasada/ibatisToMyBatis3

  1. Holen Sie sich das Projekt von GitHub $ git clone https://github.com/ogasada/ibatisToMyBatis3.git
  2. Ändern Sie die Konfigurationsdatei und geben Sie das Verzeichnis an, in dem die SQL-Quelldatei gespeichert ist.
  1. Führen Sie das Programm aus und migrieren Sie zur Mapper-Datei $ ./gradlew convert

Das Migrationstool ist möglicherweise nicht ausreichend, da ich es auf die von mir benötigten Funktionen beschränke. Das Programm selbst ist keine große Sache, daher denke ich, dass Sie Funktionen hinzufügen können, wenn Sie es entsprechend ändern.

Recommended Posts

Von iBATIS zu MyBatis3 verschoben
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Migrieren Sie von JUnit 4 zu JUnit 5
Von Java zu Ruby !!
Versuchen Sie Spring Boot von 0 bis 100.
Migration von Cobol nach JAVA
Wechseln Sie von slim3-gen zu slim3-gen-jsr269
Wechsel von AWS zu PaizaCloud
Ich leide unter My Batis für jeden Fehler
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Konvertieren Sie von ○ Monaten in ○ Jahre ○ Monate
Umschreiben von Applet zu Anwendung
Wechseln Sie von SQLite3 zu PostgreSQL
Von ineffektivem Java zu effektivem Java
02. Ich habe eine API erstellt, um eine Verbindung von Spring Boot zu MySQL (My Batis) herzustellen.
Protokoll-Puffer-Migration von 2.x auf 3.x.
[Hinweis] Von S3 herunterladen, auf S3 hochladen
Stoppen Sie das erneute Senden vom Client zum Server
Ubuntu Desktop Upgrade von 18.0.4 (?) Auf 20.04.1 (Fokus)
Migrieren Sie von on-prepukiwiki zu esa.io \ (⁰⊖⁰) /
Wechseln Sie von JSP + JSTL zu Thymeleaf
Java soll ab heute dabei sein
Von Java zu VB.NET-Writing Kontrastmemo-
Einführung in Ruby (aus anderen Sprachen)
Java, Schnittstelle für Anfänger
Verwendung der MyBatis Mapper-Annotation
Ändern Sie die Datenbank von SQLite in MySQL
Hinweise zur Migration von CircleCI 1.0 auf 2.0
Süchtig nach dem Importieren von Projekten aus GitHub
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
Von der Einführung bis zur Verwendung von byebug
Wechseln Sie von Eclipse zu VS Code
Der Weg von JavaScript nach Java
Memorandum Poem (von Zeit zu Zeit aktualisiert)
[Java] Konvertierung von Array zu Liste
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
So wechseln Sie von HTML zu Haml
Versuchen Sie, mit MyBatis im Micronaut + Kotlin-Projekt Daten aus der Datenbank abzurufen