Préface
J'ai beaucoup utilisé JPA récemment. Je me sens mal à l'aise d'écrire SQL avec la méthode XML de MyBatis. La définition et le mappage de l'interface sont discrets dans différents fichiers, ce qui ne le rend pas particulièrement pratique à lire.
Par conséquent, utilisez Spring Boot pour intégrer MyBatis et écrire SQL dans l'annotation
Reportez-vous à "Ma première application Kotlin"
Créer un projet, introduire les dépendances dans le fichier build.gradle
compiler "org.mybatis.spring.boot: mybatis-spring-boot-starter: $ mybatis_version" compile "mysql: mysql-connector-java: $ mysql_version"
Fichier complet de build.gradle
Groupe 'name.quanke.kotlin'version' 1.0-snapshot'buildscript {ext.kotlin_version = '1.2.10' ext. '1.1.1' Repositories {mavencentral ()} dépendances {classpath "org.jetbrains.kotlin: kotlin-gradle-Plugin: $ kotlin_version" ClassPath ("org.springframework.boot: Spring-boot-gradle-Plugin: Spring_boot_version") // kotlin intégrés Springboot " and sets all classes by default all classes to open class plugin classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlin_version") classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlin_version") }}apply plugin: 'kotlin'apply plugin: "kotlin-spring" // See 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 = 'Chapter11-6-5-Service' version = '0.1.0'} Repositories {mavencentral ()} dépendances {compile "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" Mybatis-Spring-boot-starter: $ mybatis_version "Mybatis-Spring-boot-starter: $ mybatis_version" Mybatis-Spring-Boot-Starter: $ mybatis_version "Mybatis-Spring-Boot-Starter: $ mybatis_version" Mybatis-Spring-Boot-Starter: $ mybatis_version "Mybatis-Spring-Boot-Starter: $ mybatis_version" Mybatis-Spring-Boot-Starter: $ mybatis_version " "mysql: mysql-connector-java: $ mysql_version" testcompile "org.springframework.boot: printemps-boot-starter-test: $ printemps_boot_version" testcompile "org.Jetbrains.kotlin: kotlin-test-junit: $ kotlin_version"} compilekotlin { kotlinoptions.jvmtarget = "1.8"} compileTestkotlin {kotlinoptions.jvmtarget = "1.8"}Configurer la connexion MySQL dans le fichier application.yml
Spring: DataSource: URL: JDBC: MySQL: // LocalHost: 3306 / Test Username: Root Motword: 123456 Driver-Class-Name: com.mysql.jdbc.
Utilisation de Mybatis
Créez une table d'utilisateurs dans MySQL, y compris les champs ID (BigInt), Nom d'utilisateur (VARCHAR) et Age (INT). En même temps, créez un utilisateur d'objet de mappage
Utilisateur de classe de données (var id: long? = -1, var username: String = "", Val Age: int? = 0)
Créer un opération Userperper pour UserMapper, pour la vérification des tests unitaires ultérieurs, implémenter des opérations d'insertion et de requête
Import name.quanke.kotlin.chaper11_6_5.entity.usemport org.apache.ibatis.annotations.insertimport org.apache.ibatis.annotations.mapperImport org.apache.ibatis.annotations.paramimport org.apache.ibatis.annotations.Paramimport Org.apache.ibatis.Select /** * PARAMIMPORT ORG.APACHAP http://quanke.name le 2018/1/11. * / @ MAPPERINTERFACE Userperper {@Select ("Select * From User Where Username = # {username}") fun findByUserName (@param ("username") username: String): list <user> @insert ("insert dans l'utilisateur (username, mot de passe) Valeurs (# {username}, # # # # #)") String, @param ("mot de passe") Mot de passe: chaîne): int}Démarrer la classe Spring Boot
import org.springframework.boot.springApplicationImport org.springframework.boot.autoconfigure.springbootapplication / ** * créé par http://quanke.name le 2018/1/9. * / @ SpringbootApplicationClass ApplicationFun Main (Args: Array <string>) {SpringApplication.run (application :: class.java, * args)} Tests unitaires
importer name.quanke.kotlin.chaper11_6_5.repository.usermapperImport org.apache.commons.logging.logfactoryimport org.junit.testimport org.junit.runner.runwithimottestimport org.springframework.test.context.junit4.springrunnerimport javax.annotation.resource / ** * créé par http://quanke.name le 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 User with username [quanke.name]: $ {userMapper.findbyUsername ("Quanke.name")} ") [Quanke]: $ {userMapper.findByUsername ("Quanke")} ")}}Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.