gpt4 book ai didi

java - 如何在 Intellij 中将 Kotlin 与 H2 和 SQLite 结合使用

转载 作者:行者123 更新时间:2023-12-02 02:22:10 27 4
gpt4 key购买 nike

当我尝试在 Intellij 中将 Kotlin 与 SQLite 或 H2 结合使用时,Intellij 给出以下错误:

Exception in thread "main" java.lang.ClassNotFoundException: org.h2.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.jetbrains.exposed.sql.Database$Companion.connect(Database.kt:91)
at org.jetbrains.exposed.sql.Database$Companion.connect$default(Database.kt:90)
at MainKt.main(main.kt:9)

这是我的 Gradle 文件:

buildscript {
ext.kotlin_version = '1.2.20'

repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.h2.Driver"
}
}

group '1'
version '1.0-SNAPSHOT'

apply plugin: 'kotlin'

repositories {
mavenCentral()
maven {
url "https://dl.bintray.com/kotlin/exposed"
}
}

dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile 'org.jetbrains.exposed:exposed:0.9.1'

}

compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}

这是我的 Kotlin 文件,我尝试在其中使用 Exposed使用 Kotlin 与 H2e 连接一些数据持久性:

import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.Table
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.selectAll

fun main(args: Array<String>) {
Database.connect("jdbc:h2:mem:test", driver = "org.h2.Driver")

transaction {
logger.addLogger(StdOutSqlLogger)

val stPeteId = Cities.insert {
it[name] = "St. Petersburg"
} get Cities.id

println("Cities: ${Cities.selectAll()}")
}
}

object Cities : Table() {
val id = integer("id").autoIncrement().primaryKey()
val name = varchar("name", 50)
}

data class City(val id: Int, val name: String)

如何将 Kotlin 与数据库结合使用?这不适用于 Android;只是 Intellij 中的一个个人项目,我最终想在 PC 上使用它。

最佳答案

无论您使用的是 java 还是 kotlin,您实际上都需要 h2 驱动程序。将 com.h2database:h2 依赖项添加到您的 gradle 文件中,并根据需要添加 Maven Central。

顺便说一下,你的 kotlin 代码没有任何问题。如果像这样从 java 调用,这也不起作用,因为您缺少依赖项。

关于java - 如何在 Intellij 中将 Kotlin 与 H2 和 SQLite 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48357523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com