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

  • 相关阅读:
    屏幕截图 从安卓模拟器中识别出屏幕文字
    srcset
    Bitwise and Bit Shift Operators 位运算 取反 补码
    text recognizer (OCR) Engine 光学字符识别
    删除目录下 某类名字的文件
    appmaptile
    登录框
    将代码设置的剪切板内容通过输入法软件粘贴入app搜索框
    面向问题的高级语言
    使用心理视觉来进行图像处理
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13934889.html
Copyright © 2011-2022 走看看