MyBatis ist ein halbautomatisches Orm. Bei der Verwendung dieses Frameworks besteht die meiste Workload darin, Mapping -Mapping -Dateien zu schreiben. Da man leichtes Schreiben leicht zu machen ist, können wir MyBatis-Generator verwenden, um uns automatisch Dateien zu generieren.
Reverse Engineering
1. Was ist Reverse Engineering
Mybaits erfordert Programmierer, SQL -Aussagen selbst zu schreiben. MyBatis -Beamter bietet Reverse Engineering an, um den erforderlichen Code für die Ausführung von MyBatis automatisch zu generieren (Mapper.java, mapper.xml, po ..)
Häufige Reverse Engineering -Methoden in der tatsächlichen Unternehmensentwicklung:
Der Java -Code wird aufgrund der Tabelle der Datenbank generiert.
2. Download Reverse Engineering
MyBatis-Generator-Core-1.3.2-bundle.zip
3.. Wie man benutzt (kann es verwenden)
3.1 Reverse Engineering ausführen
In der offiziellen Dokumentation werden verschiedene Möglichkeiten zur Durchführung von Reverse Engineering durchgeführt
MyBatis -Generator ausführen
MyBatis Generator (MBG) kann auf folgende Weise ausgeführt werden:
(1) Aus der Eingabeaufforderung mit einer XML -Konfiguration
(2) als Ameisenaufgabe mit einer XML -Konfiguration
(3) als Maven -Plugin
(4) Aus einem anderen Java -Programm mit einer XML -Konfiguration
(5) Aus einem anderen Java -Programm mit einer Java -basierten Konfiguration
(6) Sie können auch Code über das Eclipse-Plug-In generieren
Es wird empfohlen, die Java -Programmmethode zu verwenden (aus einem anderen Java -Programm mit einer XML -Konfiguration) und sich nicht auf Entwicklungstools verlassen.
Im Folgenden finden Sie ein Projekt, das Reverse -Dateien generiert und dann die automatisch generierten Dateien in das ursprüngliche Projekt kopiert (dies wird durchgeführt, um nicht mehr in der Quelldatei zu generieren und die Datei mit demselben Namen zu überschreiben). Der Screenshot des importierten JAR -Pakets und der Projektstruktur lautet wie folgt:
Wie gezeigt
3.2 Code -Konfigurationsdateien generieren
Generatorconfig.xml:
<? 1.0 // en "" http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd "> <generatorConfiguration> <context id =" testtables "targetruntime =" mybatis3 "> <commentgenerator> <! name = "SuppressAllComents" value = "true"/> </commentgenerator> <!-Informationen zur Datenbankverbindung: Treiberklasse, Verbindungsadresse, Benutzername, Passwort-> <jdbcconnection driverClass = "com.mysql.jdbc.driver" Connectionurl = "jdbc: mysql: // localHost: 3306/mybatis" userID = "root" password = "1234"> </jdbcconnection> <!- <jdbcconnection driverClass = "oracle.jdbc.oracledriver" Connectionurl = "jdbc: oracle:@127.0.0.1: 1521: yycg" userId = "yycg" kennwort "kennwort" -> <!-Standard Falsch, analysieren Sie die JDBC-Dezimal- und numerischen Typen an Ganzzahl und analysieren Sie die JDBC-Dezimal- und numerischen Typen zu Java.math.bigdecimal-> <Javatyperesolver> <Property name = "ForceBigDecimals" Value ". generiert-> <JavamodelGenerator targetPackage = "cn.edu.hpu.ssm.po" targetProject = "./ Src"> <! value = "true"/> </javamodelGenerator> <!-targetProject: Der Ort, an dem die Mapper-Kartendatei generiert wird-> <sqlmapgenerator targetPackage = "cn.edu.hpu.ssm.mapper" targetProject = "./ Src"> <! NAME = "EngsUbpackages" value = "false"/> </sqlmapgenerator> <!-targetPackage: Ort der Mapper-Schnittstelle Erzeugung-> <JavaClientGenerator type = "xmlmapper" targetPackage = "Cn.edu.hpu.ssm.Maper" TargetProject ". suffix of the package --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- Specify database table--><table tableName="items"></table><table tableName="orders"></table><table tableName="orderdetail"></table><table tableName="user"></table><!-- <table schema="" tableName = "sys_user"> </table> <table schema = "" tableName = "sys_role"> </table> <table schema = "" tableName = "sys_permission"> </table> <table schema = "" tablename = " -> <!-Einige Tabellenfelder erfordern Java-Typ <Table Schema = "" tableName = ""> <columnoverride column = "" javatype = ""/> </table>-> </context> </generatorConfiguration>
3.3 Führen Sie das Generatorprogramm aus
Generatorsqlmap.java:
import Java.io.file; Import Java.util.ArrayList; import Java.util.list; import org.mybatis.generator org.mybatis.generator.internal.DefaultShellCallback; public class Generatorsqlmap {public void Generator () löst Ausnahme aus {list <string> warnings = new ArrayList <string> (); boolean overwrite = true; // Konfiguration der Konfiguration von Konfiguration = generator ("generatorconfig.xml); ConfigurationParser cp = neuer configurationParser (Warnings); configuration config = cp.ParseConfiguration (configFile); defaultShellCallback callback = new DefaultShellCallback (Überschreiben); void main (string [] args) löst Ausnahme aus {try {generatorsQlmap GeneratorsQlmap = newgeneratorsQlmap (); GeneratorsQlmap.generator ();} catch (Ausnahme E) {E.printstacktrace ();}}}}}}}}}}}}}Generierter Code:
3.4 Verwenden des generierten Code
Sie müssen den generierten Code im generierten Projekt in Ihr eigenes Projekt kopieren. Kopieren wir die itemsMapper.java und itemsMapper.xml, Elemente und ItemSexample -Klassen in unser ursprüngliches Projekt.
Testmethoden in itemsMapper
Paket cn.edu.hpu.ssm.test; import static org.junit.assert.fail; import java.util.date; import Java.util.list; org.springFramework.context.support.classPathXmlApplicationContext; importieren cn.edu.hpu.ssm.mapper.ItemsMapper; applicationContext; ClassPathXmlApplicationContext ("classPath: fRIND/applicationContext.xml"); itemsMapper = (itemsMapper) applicationContext.getbean ("itemsMapper");} // löschen @Testpublic void testDeletBimaryKey () {) {"NOT implementiert"; Items (); its {ItemSexample itemSexample = new itemSexample (); // Die Abfragebedingungen durch Kriterien konstruieren. für (int i = 0; i <list.size (); i ++) {item it = list.get (i); System.out.println (it.getId ()+":"+it.getName ());}} // Abfrage basierend auf dem primären Schlüssel @TestPublic void testSelectByprimaryKey () {items items = itemsMapper.SelectByprimaryKey (1); testUpdateByPrimaryKey () {// Alle Felder aktualisieren, müssen Sie zuerst abfragen und dann Elemente aktualisieren. items.setName ("iPhone"); itemsMapper.UpdateByPrimaryKey (Elemente); // Wenn das eingehende Feld nicht leer ist, verwenden Sie diese Methode in Stapel -Updates. Es ist nicht erforderlich, zuerst abfragen und dann //itemsmapper.UpdatByprimaryKeysselective(Record);}}Das obige ist der von dem vom Editor vorgestellte MyBatis -Framework des MyBatis Reverse Engineering Automatic Code. Ich hoffe, es wird für alle hilfreich sein!
Empfohlene Lesungen von Wulin.com:
MyBatis Einführung Lerntutorial (i) - MyBatis schneller Start
Eingehende Analyse von Feldern vom Typ MyBatis Oracle Blob Typen und Lesen
MyBatis übt Dao und Mapper
Dynamische SQL und zugehörige Abfrage in MyBatis -Praxis