Saya telah belajar Java baru -baru ini dan menemukan bahwa mybatis muncul cukup sering dalam perekrutan Java, yang mungkin merupakan kerangka kerja ORM basis data yang lebih sering digunakan dalam pengembangan Java. Jadi saya akan mempelajari integrasi boot musim semi dan mybatis.
1. Tambahkan konfigurasi berikut dalam file pom.xml
<Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-web </t Artifactid> </dependency> <sependency> <RoupId> org.springframework.boot </groupid> <ArtiFacTid> <crupt-boots-stasops.boot </groupid> <ArtiFacTID> <crupt-boots-stasops.boot </groupid> <ArtiFacTid> <artfactd> <cruct-boots-stasop. </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <GroupId> com.alibaba </groupid> <ArTifactid> druid </t Artifactid> <version> 1.0.29 </version> </dependency> <Rendendency> <Ruppendency> <TROMPREDID> org.springframework. ketergantungan mybatis. Anda tidak dapat menggunakannya tanpa menambahkannya-> <dependency> <GroupId> org.mybatis.spring.boot </groupid> <Artifactid> mybatis-spring-boot-starter </stifactid> <version> 1.3.2 </version> </dependency> <!-Ini adalah dependensi yang secara otomatis, secara otomatis, dll. <groupId> org.mybatis.generator </proupId> <ArTifactId> mybatis-generator </t Artifactid> <version> 1.3.5 </version> <peement> pom </ypeem https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core-> <dependency> <groupid> org.mybatis.generator </groupid> <Artifactid> <T/Version> </ArtiFacTid> </version </version> </artifactid </versi </versi </versi </versi </versi </versi </version> </artifacies </version </versies <Plugin> <Plugin> <GroupId> org.springframework.boot </groupId> <ArtifactId> spring-boot-maven-plugin </artifactid> </lugin> <lugin> <Roupid> org.mybatis.generator </groupid> <ArtiFacTid> mytifactid> MytifacTid> MytifacTid> MytifacTid> MytifacTid> myb-myb-myb-generator </groupin> Mytifactid> myb-myb-myb-mybatis-generator <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. Konfigurasikan pemindaian database dan mybatis di file konfigurasi application.properties
spring.datasource.driver-class-name = com.mysql.jdbc.driverspring.datasource.url = jdbc: mysql: // localhost: 3306/yddy? UseUnicode = true & characterencodin G = UTF-8 & ServERTIMEZone = utcspring.datasource.username = rootspring.datasource.password = 123456mybatis.config-locations = classpath: mybatis-config.xml# file mapper mybatis.mapper-locations = classpath: mapper/ *. xml #write * langsung di sini, yang bermanfaat untuk SQL khusus dan menulis xxxext.xml nanti. Secara otomatis memindai file -file ini. Tidak perlu mengubah konfigurasi mybatis.type- aliases-package = com.dameiweb.learn.modellogging.level.com.dameiweb.learn.dao = debug#mybatis.config = mybatis nama file#mybatis.mapperLocations = mapperping xbapes xbatis xbatis name mybatis.mapperLocations = mapperping xrasping xbatis Path#mybatis.typehandlerspackage = Jenis Handlers Prosesor Paket Path#mybatis.check-config-location = Periksa mybatis apakah konfigurasi ada, umumnya dinamai mybatis-config.xml#mybatis.executortype = mode eksekusi. Default sederhana
3. Konfigurasi MyBatis dan Konfigurasi Mapper Otomatis
Buat generatorconfig.xml dan mybatis-config.xml baru di direktori sumber daya. Kontennya adalah sebagai berikut:
Konten GeneratorConfig.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype GeneratorConfiguration Public "-// mybatis.org//dtd MyBatis Generator Configuration 1.0 // en" "http://mybatis.org/dtd/mybatis-genercon>" cond- " <classPathEntry location="C:/Users/nick/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value = "true"/> <name properti = "SuppressAllComments" value = "true"/> </commentgenerator> <!-Database Tautan Alamat Kata Sandi Akun-> <JDBCConnection DriverClass = "com.mysql.jdbc.driver" connectionURL="jdbc:mysql://localhost:3306/yddy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javatyperesolver> <!-Menghasilkan lokasi penyimpanan kelas model-> <javamodelgenerator targetPackage = "com.dameiweb.learn.model" targetProject = "src/main/java"> <dan name property a adalah nilai kembali dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai dari nilai " name = "trimstrings" value = "false"/> </javaModelgenerator> <!-menghasilkan lokasi penyimpanan file peta-> <sqlmapgenerator targetpackage = "mapper" targetProject = "src/main/sumber daya-name property =" enableSubpackages "value =" true "/</sqlmap, coilvenor <! Hasilkan type kode yang mudah digunakan = "AnnotatedMapper", menghasilkan model Java dan tipe objek mapper berbasis anotasi = "mixedmapper", menghasilkan model java berbasis anotasi dan tipe objek mapper yang sesuai = "xmlmapper", menghasilkan sqlmap xml file dan independen mapper-<javaclientgeneroring = " TargetPackage = "com.dameiweb.learn.dao" targetProject = "src/main/java"> <name properti = "enableSubpackages" value = "true"/> </javaclientgenerator> </context> </generatorConfiguration>
Isi mybatis-config.xml:
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <"configuration> <poning" nexons <"connon/liping/liping <3-konfig. <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="true"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" 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.Integer" /> <typeAlias alias="Long" type="java.lang.Long" /> <typeAlias alias="HashMap" type="java.util.HashMap" /> <typeAlias alias="LinkedHashMap" type = "java.util.linkedhashmap" /> <typealias alias = "arraylist" type = "java.util.arraylist" /> <typealias alias = "linkedlist" type = "java.util.linkedlist" /< /typealases> < /typealases> < /configuration> configuration>
Dengan cara ini, kami telah mengkonfigurasi boot pegas, mybatis dan mybatis untuk secara otomatis menghasilkan pemetaan dan entitas. Dengan cara ini, ketika kita ingin menghasilkan entitas dan mapper tabel tertentu, kita hanya perlu menambahkan konten berikut setelah tag JavaClientGenerator di GeneratorConfig.xml.
Di sini kita memiliki tabel yd_movies sebagai contoh (jangan gunakan nomor jamak dalam nama tabel database utama. Nama tabel ini harus menjadi otak saya sebelumnya, jadi saya membuat nama jamak)
<!--Generate corresponding table and class name--> <table tableName="yd_movies" domainObjectName="Movie" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <columnOverride column="cover_photos" javatype = "java.lang.string" jdbctype = "varchar" /> <columnoverride column = "cover_photos_loc" javatype = "java.lang.string" jdbctype = "varchar" /> <columnoverride column = "pubdates" javatype = "java." java. "java." java. "java." java. "java." java. "java." kolom = "photchs_origin" javatype = "java.lang.string" jdbctype = "varchar" /> <columnoverride column = "photchs_origin_loc" javatype = "java.Lang.string" jdbctype = "varchar" /<columnoverride columnage = "JAVATEPE =" varchar " /<columnoverride columnage =" "JavaRy" JavaRiG. "JavaRiG." JAVATIPE. " jdbctype = "varchar" /> <columnoverride column = "Awards" javatype = "java.lang.string" jdbctype = "varchar" /> <columnoverride column = "ringkasan" javatype = "java.Lang.string" jdbctype = "varchar" /< /tabel label my /tager —Lang. XXXXWithBlobs File Ketika jenis bidang database adalah teks. ->
Kemudian klik Proyek Maven di sisi kanan ide, dan Anda dapat melihat Mybatis-Generate: menghasilkan di bawah mybatis-generate, dan klik dua kali Mybatis-Generate: Generate.
** Catatan Generator, itu juga bisa dikatakan sebagai bug
Itu adalah saat dihasilkan, dan pada generasi kedua, DAO dan entitas akan secara langsung ditimpa, sementara mapper.xml akan secara langsung ditambahkan, menghasilkan kesalahan dalam menjalankan dan sulit ditemukan. **
4.Mybatis Custom SQL
Ketika kita perlu menyesuaikan SQL, kita tidak dapat memasukkannya ke dalam file mapper juga. Kalau tidak, ketika bidang tabel database diperbarui dan perlu diregenerasi, apakah SQL kami yang disesuaikan akan ditimpa? Jadi kita perlu membuat file moviemapperext.xml baru di direktori moviemapper.xml dan letakkan SQL khusus di sini. Contohnya adalah sebagai berikut:
Konten file moviemapperexext.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> namespace = "com.dmeiweb.learn.dao.moviemapper"> <pilih id = "selectbycondition" resultMap = "baseresultMap" parameterType = "com.dmeiweb.learn.dto.movierequest"> Select yd_movies. yd_movies.id = yd_r_movie_countries.movie_id kiri bergabung yd_countries cou on yd_r_movie_countries.country_id = cou.id kiri bergabung yd_r_movie_category di yd_movies.id = yd_movie_catory. yd_r_movie_category.category_id = cat.id kiri bergabung yd_r_movie_actor di yd_movies.id = yd_r_movie_actor.movie_id kiri bergabung dengan yd_actors a pada yd_r_movie_actor.actor_actor_id = a.id di mana yd_move.movie.actor.actor_id = a.id = a.id -nover = 1MoVE = 1MOVIE_ACTOR.ACtor_ID = A.ID = a.ids = nd_movie =.Actor = A.id = a.move =.id = ! = null "> dan yd_movies.title seperti"%" #{movieRequest.title}"%"</if> <if test =" movieRequest.country! = null "> dan cou.id = #{movierequest.country} </if> <if test =" movierequest. #{MovieReQuest.Category} </if> <if test = "movieRequest.year! = null"> dan year = #{movieRequest.year} </if> <if test = "movieRequest.rate! = null"> dan rate> = #{movierequest.rate </if> = ife '> = #{movierequest.rate </if> = ife/laju> = #{movierequest.rate </if> ( #{MovieRequest.RATE} +1) </if> <if test = "movieRequest.subtype! = null"> dan yd_movies.subtype = #{movieRequest.subtype} </if> grup oleh yd_movies.id dengan update_at desc, tahun </if>Meringkaskan
Di atas adalah boot musim semi yang diperkenalkan kepada Anda oleh editor. Ini mengintegrasikan mybatis dan secara otomatis menghasilkan pemetaan dan entitas. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!