zoukankan      html  css  js  c++  java
  • [Kotlin spring boot] Work with database

    pom.xml: add compile plugin

        <build>
            <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
            <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <artifactId>kotlin-maven-plugin</artifactId>
                    <configuration>
                        <args>
                            <arg>-Xjsr305=strict</arg>
                        </args>
                        <compilerPlugins>
                            <plugin>spring</plugin>
                            <plugin>jpa</plugin>
                        </compilerPlugins>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.jetbrains.kotlin</groupId>
                            <artifactId>kotlin-maven-allopen</artifactId>
                            <version>${kotlin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.jetbrains.kotlin</groupId>
                            <artifactId>kotlin-maven-noarg</artifactId>
                            <version>${kotlin.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>

    update application.properties:

    spring.datasource.url=jdbc:h2:file:~/theater
    spring.datasource.driverClassName = org.h2.Driver
    spring.datasource.username = sa
    spring.datasource.password =
    spring.jpa.properties.hibernate.hbm2dll.auto=update
    spring.jpa.hibernate.ddl-auto=create-drop
    spring.jpa.properties.hibernate.globally_quoted_identifiers=true

    We need to create a jpa interface, so that jpa will help us to generate database table according to our Entity data schema:

    data/JPAInterfaces.kt

    package com.virtualpairprogrammers.theater.data
    
    import com.virtualpairprogrammers.theater.domain.Seat
    import org.springframework.data.jpa.repository.JpaRepository
    
    interface SeatRepository : JpaRepository<Seat, Long>

    domain/Seat.kt:

    package com.virtualpairprogrammers.theater.domain
    
    import java.math.BigDecimal
    import javax.persistence.Entity
    import javax.persistence.GeneratedValue
    import javax.persistence.GenerationType
    import javax.persistence.Id
    
    @Entity
    data class Seat(@Id @GeneratedValue(strategy = GenerationType.AUTO)
                    val id: Long,
                    val row: Char,
                    val num: Int,
                    val price: BigDecimal,
                    val description: String) {
        override fun toString(): String = "Seat $row-$num $$price ($description)"
    }

    Inside main controller, create a endpoint "bootstrap" when we need to add data into the table

        fun createInitialData(): ModelAndView {
            val seats = theaterService.seats
            seatRepository.saveAll(seats)
            return homePage()
        }

    https://github.com/zhentian-wan/kotlin-spring-boot-demo/commit/a1d8bd0925a6189f0aabb351a57cb96a6e81abc8

  • 相关阅读:
    oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
    oracle 常用语句
    android udp 无法收到数据 (模拟器中)
    android DatagramSocket send 发送数据出错
    AtCoder ABC 128E Roadwork
    AtCoder ABC 128D equeue
    AtCoder ABC 127F Absolute Minima
    AtCoder ABC 127E Cell Distance
    CodeForces 1166E The LCMs Must be Large
    CodeForces 1166D Cute Sequences
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13934889.html
Copyright © 2011-2022 走看看