Prefacio
He usado mucho JPA recientemente. Me siento incómodo escribiendo SQL con el método XML de MyBatis. La definición y el mapeo de la interfaz son discretos en diferentes archivos, lo que hace que no sea particularmente conveniente de leer.
Por lo tanto, use el arranque de primavera para integrar mybatis y escribir SQL en la anotación
Consulte "Mi primera aplicación Kotlin"
Crear un proyecto, introducir dependencias en el archivo build.gradle
compilar "org.mybatis.spring.boot: mybatis-spring-boot starter: $ mybatis_version" compilar "mysql: mysql-confonector-java: $ mysql_version"
Archivo build.gradle completo
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_swagger2_version = '2.7.0' ext.mysql_version = '5.1.21' ext.mybatis_version = Repositorios de '1.1.1' {mavencentral ()} dependencias {classpath "org.jetBrains.kotlin: kotlin-gradle-plugin: $ kotlin_version" classpath ("org.springframework.boot: spring-boot-gradle-plugin: $ spring_boot_version") // constructor, y establece todas las clases de forma predeterminada todas las clases para abrir el complemento de clase classpath ("org.jetbrains.kotlin: kotlin-noarg: $ kotlin_version") classpath ("org.jetbrains.kotlin: kotlin-allopen: $ kotlin_version")}} Aplicar el complemento: kotlin'papllin'applytlin'applygly "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 = 'capítulo11-6-5-service' versión = '0.1.0'} Repositorios {mavencentral ()} Dependencias {Compile "org.jetbrains.kotlin: kotlin-stdlib-jre8: $ kotlin_version" compile ("org.jetbrains.kotlin: kotlin-reflect: $ {kotlin_version}") compil "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"} Compilekotlin { kotlinoptions.jvmtarget = "1.8"} compiletestkotlin {kotlinoptions.jvmtarget = "1.8"}Configurar la conexión MySQL en el archivo Application.yml
Spring: DataSource: URL: JDBC: MySQL: // Localhost: 3306/Test UserName: Root Password: 123456 Driver-Class-Name: com.mysql.jdbc.driver
Usando mybatis
Cree una tabla de usuario en MySQL, incluidos los campos ID (BigInt), UserName (Varchar) y Age (INT). Al mismo tiempo, cree un usuario de objeto de mapeo
Usuario de clase de datos (VAR ID: Long? = -1, VAR UserName: String = "", Val Age: Int? = 0)
Crear operación USERMapper para Usermapper, para la verificación de prueba unitaria posterior, implementar operaciones de inserción y consulta
importar nombre.quanke.kotlin.chaper11_6_5.entity.userimport org.apache.ibatis.annotations.insertImport org.apache.ibatis.annotations.mappertimport org.apache.ibatis.annotations.paramimport org.apache.ibatis.annotations.paramimort por http://quanke.name el 2018/1/11. */@Mapperinterface usermapper {@select ("seleccione * de user Where username = #{username}") diversión findByUsername (@param ("username") username: string): list <serer> @insert ("Insertar en el usuario (userName, contraseña) valores ( #{username}, #{contraseña})") Fun Inserción (@Param ("" UserName)) String, @param ("contraseña") contraseña: string): int}Iniciar clase de arranque de primavera
importar org.springframework.boot.springapplicationImport org.springframework.boot.autoconfigure.springbootapplication/*** creado por http://quanke.name el 2018/1/9. */@SpringBootApplicationClass ApplicationFun Main (args: Array <String>) {SpringApplication.run (Application :: Class.Java, *Args)} Prueba unitaria
importar nombre.quanke.kotlin.chaper11_6_5. org.springframework.test.context.junit4.springrunnerimport javax.annotation.resource/*** creado por http://quanke.name el 2018/1/9. */@Runwith (springrunner :: class) @springboottestclass ApplicationTests {val log = logFactory.getLog (ApplicationTests :: Class.java) !! @Resource LateInit Var USERMapper: usermapper @test diversión `mybatis test" `() {log.info (" Usuario de consulta con nombre de usuario [quanke.name]: $ {usermapper.findbyusername ("quanke.name")} ") userMapper.interer (" quanke "," 123 ") nombre de usuario [quanke]: $ {usermapper.findbyusername ("quanke")} ")}}Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.