Ich habe kürzlich Java gelernt und festgestellt, dass MyBatis in der Rekrutierung von Java ziemlich häufig auftritt, was möglicherweise das Datenbank -Framework sein kann, das häufiger in der Java -Entwicklung verwendet wird. Also wollte ich die Integration von Spring Boot und MyBatis studieren.
1. Fügen Sie die folgende Konfiguration in die Datei pom.xml hinzu
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </Dependent> <Epping> <GroupId> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Jdbc </artifactID> </abhängig> <abhängigkeit> <gruppe> mysql </gruppen> <artifactid> mysql-connector-java/artifactid> </scopttt time> <Depepentcy> <gruppe> com.alibaba </GroupId> <artifactId> druid </artifactId> <version> 1.0.29 </Version> </abhängig> <depecled> <GroupID> org.springFramework MyBatis Abhängigkeit. Sie können es nicht verwenden, ohne es hinzuzufügen: <CruupId> org.mybatis.generator </Groupid> <artifactId> MyBatis-Generator </artifactId> <version> 1.3.5 </Version> <Typ> pom </type> </abhängig> <! https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <!--Address for configuration file--> <!--<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>--> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
2. Konfigurieren Sie die Datenbank- und MyBatis -Scan in Application.Properties -Konfigurationsdatei
Spring.DataSource.Driver-Class-name = com.mysql.jdbc.driverspring.datasource.url = jdbc: mysql: // localhost: 3306/yddy? useUnicode = true & charakteristisch g = utf-8 & servertimezone = utcSpring.datasource.username = rootspring.datasource.password = 123456mybatis.config-Locations = ClassPath: mybatis-config.xml# Mapper-Datei mybatis.mapper-locations = classPath: minkPer/ *. XML #Write * direkt hier, was für benutzerdefinierte SQL und das Schreiben von xxxext.xml später von Vorteil ist. Es wird diese Dateien automatisch durchsucht. Es ist nicht erforderlich, die Konfiguration mybatis.typ-alias-package = com.dameiweb.learn.modellogging.level.com.dameiweb.learn.dao = Debugug#mybatis.config = MyBatis-Konfigurationsdateiname#mybatis.mapperocations = mapper xmlications#mybatis.mapperocations = mybatis = mybatis = mapper xmlications = mybatis.mapperocations = mybatis.Mapperocations zu Paketpfad#mybatis.typeHandlerSpackage = Typ-Handler-Prozessor-Paketpfad#mybatis.Check-config-location = Überprüfen Sie, ob die Konfiguration vorhanden ist. Im Allgemeinen heißt MyBatis-config.xml#mybatis.executortype = Executution-Modus. Standard ist einfach
3.. MyBatis -Konfiguration und automatische Mapper -Konfiguration
Erstellen Sie im Ressourcenverzeichnis eine neue Generatorconfig.xml und mybatis-config.xml. Der Inhalt ist wie folgt:
GeneratorConfig.xml Inhalt
<? <classpathEntry location = "c: /Users/nick/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"/> <context id = "DB2Tables" targruntime = "my myBatis3"> <commentgenerator> <subessionRuntime = "my myBatis3"> <commentgenerator> <addruntime = "my mybatis3" value = "true"/> <Eigenschaft name = "SuppressAllComents" value = "true"/> </commentgenerator> <!-Datenbankverbindungsadressenkennwort-> <jdbcconnection driverClass = "com.mysql.jdbc.driver" ConnectionURL = "JDBC: MySQL: // localhost: 3306/yddy? </javatyperesolver> <!-Modellklassenspeicherort-> <JavamodelGenerator targetPackage = "com.dameiweb.learn.model" targetProject = "src/main/java"> <Eigenschaft name = "Ensubpackages" Value = "true. name = "trimstrings" value = "false"/> </javamodelGenerator> <!-Kartendateispeicherort-> <sqlmapgenerator targetPackage = "Mapper" targetProject = "src/main/ressourcen"> <Eigenschaft name = "engsUbpackages" value = "true. Generieren Sie einfach zu bedienende Code-Typen = "AnnotatedMapper", generieren Sie JAVA-Modell und Annotations-basierte Mapper-Objekttyp = "MixedMapper", generieren Sie Annotations-basierte Java-Modell und entsprechend Mapper-Objekttyp = "Xmlmapper", generieren Sie SQLMAP XML-Dateien und unabhängige Mapper-Schnittstelle-> <javaclient generator type targetPackage = "com.dameiweb.learn.dao" targetProject = "src/main/java"> <Eigenschaft name = "enableBpackages" value = "true"/> </javaclientGenerator> </context> </generatorConfiguration>
Inhalt von mybatis-config.xml:
<? value = "true"/> <seting name = "cacheeneNabled" value = "true"/> <seting name = "lazyloadingenabled" value = "true"/> <seting name = "AggressingAnyLoading" value = "true"/> <einstellungsname = "Multiplleresetssätze" value "/> <" -Anwayname = "usecolumnLabel". value="false"/> <setting name="autoMappingBehavior" value="PARTIAL"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="localCacheScope" value="SESSION"/> <setting name="jdbcTypeForNull" value="NULL"/> </settings> <typealias alias = "Integer" type = "java.lang.Ineger" /> <typealias alias = "long" type = "java.lang.long" /> <typealias alias = "Hashmap" Typ = "java.util.hashmap" /> <typealias alias = "linkedhashmap" typeaLias = "linkedhashmap" type.Link "linkedhashmap" type "linkedhashmap" = "java.util.Link" linkedhashmap "type" linkedhashmap "=" java.thashhashhashmap "type" linkedhashmap "=" java. <typealias alias = "arrayList" type = "java.util.ArrayList" /> <typealias alias = "linkedList" type = "java.util.linkedList" /> < /typealias> < /configuration>
Auf diese Weise haben wir Spring Boot, MyBatis und MyBatis konfiguriert, um automatisch Mapper und Entitäten zu generieren. Auf diese Weise müssen wir, wenn wir die Entität und Mapper einer bestimmten Tabelle generieren möchten, nur den folgenden Inhalt nach dem JavaclientGenerator -Tag in GeneratorConfig.xml hinzufügen.
Hier haben wir die Tabelle yd_movies als Beispiel (verwenden Sie keine Pluralnummern im Hauptdatenbank -Tabellenname. Dieser Tabellenname muss vorher mein Gehirn sein, also habe ich einen Pluralnamen gemacht).
<!-entsprechende Tabelle und Klassenname generieren-> <table tableName = "yd_movies" domainObjectname = "move" EnableCountByExample = "False" EnableUpDateByExample = "false" enableTEleteByExample = "false" EnglectByExample = "falseByExamplequeryID =" falseByExample "> <ScolalSeAnly" <Scolumning "<spalents" <spallexs, "conisternrate", "falseOverride javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="cover_photos_loc" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="pubdates" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="photographs_origin" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="photographs_origin_loc" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="languages" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="awards" javaType="java.lang.String" jdbcType="VARCHAR" /> <columnOverride column="summary" javaType="java.lang.String" jdbcType="VARCHAR" /> </table> <!-Columnoverride verwendet dieses Tag, um zu verhindern, dass MyBatis XXXXWithblobs-Dateien generiert, wenn der Datenbankfeldtyp Text ist. ->
Klicken Sie dann auf Maven-Projekte auf der rechten Seite der Idee, und Sie können MyBatis-generiert sehen: Erzeugen Sie unter MyBatis-Generate und doppelklicken Sie mit MyBatis-Generate: Erzeugen.
** Generatornote, es kann auch als Fehler bezeichnet werden
Es ist, wenn es generiert wird und in der zweiten Generation DAO und Entity direkt überschrieben werden, während Mapper.xml direkt angehängt wird, was zu einem Fehler im Lauf führt und es schwierig ist, zu finden. **
4.Mybatis Custom SQL
Wenn wir SQL anpassen müssen, können wir diese nicht auch in die Mapper -Datei einfügen. Wenn die Felder der Datenbanktabelle aktualisiert werden und wiederhergestellt werden müssen, wird unser individuelles SQL überschrieben? Daher müssen wir im Verzeichnis von moviemapper.xml eine neue moviemapperext.xml -Datei erstellen und die benutzerdefinierte SQL hier einstellen. Das Beispiel lautet wie folgt:
Moviemapperext.xml Dateiinhalt
<? namespace = "com.dmeiweb.learn.dao.moviemapper"> <select byCondition "resultMap =" baseresultmap "parameterType =" com.dmeiweb.learn.dto.movierequest "> select yd_movies. yd_movies.id = yd_r_movie_countries.movie_id links jou yd_r_movie_category.category_id = cat.id linke join yd_r_movie_actor on yd_movies.id = yd_r_movie_actor.movie_id links join yd_actors a on yd_r_movie_actor_id = a.id.id.Id, wob ! #{movierequest.category} </if> <if test = "movierequest.year! <( #{movierequest.rate} +1) </if> <if test = "movierequest.subType!Zusammenfassen
Das obige ist der Spring Boot, der Ihnen vom Herausgeber vorgestellt wurde. Es integriert MyBatis und generiert automatisch Mapper und Entitäten. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!