Kata pengantar
Saya telah banyak menggunakan JPA baru -baru ini. Saya merasa tidak nyaman menulis SQL dengan metode XML mybatis. Definisi dan pemetaan antarmuka diskrit dalam file yang berbeda, membuatnya tidak terlalu nyaman untuk dibaca.
Oleh karena itu, gunakan Spring Boot untuk mengintegrasikan mybatis dan menulis SQL dalam anotasi
Lihat "Aplikasi Kotlin Pertama Saya"
Buat proyek, perkenalkan dependensi dalam file build.gradle
Kompilasi "org.mybatis.spring.boot: mybatis-spring-boot-starter: $ mybatis_version" kompilasi "mysql: mysql-connector-java: $ mysql_version"
Lengkap file build.gradle
grup 'name.quanke.kotlin'version' 1.0-snapshot'buildscript {ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.release' ext.springfox_swagger2_version = '2.7.0' Ext.mysql_version ='.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1. Repositori {mavencentral ()} dependensi {classpath "org.jetbrains.kotlin: Kotlin-gradle-plugin: $ Kotlin_version" classPath ("org.springframework.boot: spring-boots-gradle-plugin: $ spring_boot_version") all-bootlo/ springlo/ springbrates: $ spring_version ") springprates/ springbrate/ springprates: $ spring_version") springprates/ springboots: $ spring_version ") Kelas Secara default Semua kelas untuk membuka plugin kelas ClassPath ("org.jetbrains.kotlin: Kotlin-noarg: $ Kotlin_Version") classpath ("org.jetbrains.kotlin: Kotlin-allopen: $ Kotlin_version")}} aplikasikan plugin: 'Kotlin'lopen: $ Kotlin: https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-pluginapply plugin: 'org.springframework.boot'apply plugin: "Kotlin-JPA" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar {baseName = 'bab11-6-5-service' Versi = '0.1.0'} Repositori {Mavencentral ()} {Compository {Mavencentral {) "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compile("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}") compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:$mybatis_version" compile "MySQL: mysql-connector-java: $ mysql_version" testCompile "org.springframework.boot: spring-boot-starter-test: $ spring_boot_version" testCompile "org.jetbrains.kotlin: Kotlin-test-junit: $ Kotlin" Kotlinoptions.jvmTarget = "1.8"} CompileTestKotlin {Kotlinoptions.jvmTarget = "1.8"}Konfigurasikan koneksi MySQL di file application.yml
Spring: DataSource: URL: JDBC: mysql: // localhost: 3306/uji nama pengguna: root Password: 123456 driver-class-name: com.mysql.jdbc.driver
Menggunakan mybatis
Buat tabel pengguna di MySQL, termasuk ID (BigInt), Username (Varchar), dan bidang usia (int). Pada saat yang sama, buat pengguna objek pemetaan
Pengguna kelas data (var id: long? = -1, var username: string = "", val use: int? = 0)
Buat Operasi Usermapper untuk Usermapper, untuk verifikasi uji unit berikutnya, mengimplementasikan operasi insert dan kueri
Impor name.quanke.kotlin.chaper11_6_5.entity.userimport org.apache.ibatis.annotations.InsertImport org.apache.ibatis.annotations.mapperImport org.apache.ibatis.annotations.Anport org.apache.ibatis.apacheation.ibatis.Annotations.APPORATIONS org.AnnonNIBPORT org.apache.ibatis.Annotations.Anporation.APPORations.APPORations.APPORTS http://quanke.name pada 2018/1/11. */@MapperInterface userMapper {@select ("Select * from user where username = #{username}") fun findbyusername (@param ("username") nilai nama: string): daftar <user> @insert ("masukkan ke pengguna (nama username, kata sandi) ( #{ #{Username}, #@{USERNAM) (USERNAM) (USERNAM) ( #@USERNAM," USERNAM, "USERNAM," USERNAM, " String, @param ("Kata Sandi") Kata Sandi: String): int}Mulai Kelas Boot Musim Semi
impor org.springframework.boot.springapplicationImport org.springframework.boot.autoconfigure.springbootApplication/*** Dibuat oleh http://quanke.name pada 2018/1/9. */@SpringbootApplicationClass applicationFun main (args: array <string>) {springapplication.run (application :: class.java, *args)} Pengujian unit
Impor name.quanke.kotlin.chaper11_6_5.repository.usermapperImport org.apache.commons.logging.logfactoryImport org.junit.testimport org.junit.runner.runwithimport org.springframework.test.context.context.context.contextsport org.springframework.test.context.junit4.springrunnerimport javax.annotation.resource/*** Dibuat oleh http://quanke.name pada 2018/1/9. */@Runwith (springrunner :: class) @springboottestclass applicationTests {val log = logfactory.getLog (applicationTests :: class.java) !! @Resource lateinit var usermapper: usermapper @test fun `mybatis test" `() {log.info (" query pengguna dengan nama pengguna [quanke.name]: $ {usermapper.findbyusername ("quanke.name")} ") usermapper.insert (" quanke "(quanke")} ") uSermapper.insert (" quanke ")} {quanke") {quanke ")) [quanke]: $ {usermapper.findbyusername ("quanke")} ")}}Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.