Предисловие
Я много использовал JPA в последнее время. Мне некомфортно писать SQL с помощью метода XML Mybatis. Определение интерфейса и отображение дискретны в разных файлах, что делает его не особенно удобным для чтения.
Поэтому используйте Spring Boot, чтобы интегрировать Mybatis и написать SQL в аннотации
См. "Мое первое приложение Kotlin"
Создайте проект, введите зависимости в файле build.gradle
Скомпилируйте "org.mybatis.spring.boot: mybatis-spring-boot-starter: $ mybatis_version" compile "mysql: mysql-connector-java: $ mysql_version"
Полный файл build.gradle
Group 'name.quanke.kotlin'Version' 1.0-SnapShot'BuildScript {ext.kotlin_version = '1.2.10' ext.spring_boot_version = '1.5.4.Release' ext.springfox_swger2_version = '2.7.0' ext.mysql_version = '5.1.21' ext.mairs_graTIS = '2.7.0' ext.mysql_version = ' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath("org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version")// Kotlin integrates SpringBoot's default parameterless constructor, and sets all classes by по умолчанию все классы для открытия плагина класса ClassPath ("org.jetbrains.kotlin: kotlin-noarg: $ kotlin_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} Применить плагин: 'Kotlin'apply: "Kotlin-spring https://kotlinlang.org/docs/reference/compiler-lugins.html#kotlin-spring-compiler-luginapply плагин: 'org.springframework.boot'apply плагин: "Kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-helljar {basename = 'gact11-6-5-service' version = '0.1.0'} Repositories {mavencentral ()} зависимости {комбинация "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" compile ("org.jetbrains.kotlin: kotlin-reflec "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_version"} compillinoption "1.8"} CompileTestKotlin {kotlinoptions.jvmtarget = "1.8"}Настройка соединения MySQL в файле Application.yml
Весна: DataSource: URL: JDBC: MySQL: // Localhost: 3306/Test username: Root Password: 123456 Class-Class-name: com.mysql.jdbc.driver
Используя mybatis
Создайте пользовательский стол в MySQL, включая ID (BigInt), имя пользователя (varchar) и возраст (Int). В то же время создайте пользователя объекта отображения
Пользователь класса данных (var Id: long? = -1, var username: string = "", val Age: int? = 0)
Создать работу USERMAPPER для USERMAPPER, для последующей проверки модульных испытаний, реализации операций вставки и запросов
Импорт name.quanke.kotlin.chaper11_6_5.entity.userimport org.apache.ibatis.annotations.insertimport org.apache.ibatis.annotations.mapperimport org.apache.ibatis.annotations.paramimport org.apache.ibates.annotations.Annathation. по http://quanke.name 1/1/11. */@Mapperinterface usermapper {@select ("select * из пользователя, где username = #{username}") Fun findbyusernam Имя пользователя: string, @param ("пароль") пароль: string): int}Начальный класс Spring Boot
Импорт org.springframework.boot.springapplicationImport org.springframework.boot.autoconfigure.springbootapplication/*** Создан http://quanke.name на 2018/1/1/9. */@SpringBootApplicationClass ApplicationFun Main (args: array <string>) {springApplication.run (application :: class.java, *args)}} ЕДИНЦИОННЫЕ Тестирование
импорт name.quanke.kotlin.chaper11_6_5.repository.usermapperimport org.apache.commons.logging.logfactoryimport org.junit.testimport org.junit.runner.runwithiMport org.springforkwork.boot.test.springboottimport org.springframework.test.context.junit4.springrunnerimport javax.annotation.resource/*** Создан http://quanke.name на 2018/1/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 (" пользователь запроса с именем пользователя [Quanke.name]: $ {usermapper.findbyusernam Имя пользователя [Quanke]: $ {usermapper.findbyusername ("Quanke")} ")}}}}Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.