gpt4 book ai didi

kotlin - 使用 Kotlin Exposed 创建数据库后连接到数据库

转载 作者:行者123 更新时间:2023-12-02 12:57:08 26 4
gpt4 key购买 nike

我正在使用 jetbrains' exposed库来创建和填充数据库。

数据库不存在,我正在创建它。但是,我找不到一种简单的方法来连接到 SQL 引擎,创建一个数据库并在没有多个连接的情况下连接到该数据库。
这听起来有点笨拙。有没有更好的方法来做到这一点?

这是一个小例子:


var db = Database.connect("jdbc:mysql://localhost:3308", driver = "com.mysql.jdbc.Driver", user = "root", password = "aRootPassword")

transaction(db) { SchemaUtils.createDatabase("imdb") }

// avoid reconnect?
db = Database.connect("jdbc:mysql://localhost:3308/imdb", driver = "com.mysql.jdbc.Driver", user = "root", password = "aRootPassword")

transaction(db) { SchemaUtils.create (TitleRatings) }

最佳答案

您需要一个连接池,例如HikariCP .它汇集数据库连接并重用它们。与单独打开的连接相比,这为您提供了巨大的性能提升。
我通常将它包装在一个像这样的简单类中:

import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import javax.sql.DataSource

public object DB {

var db: DataSource = connect();

public fun connect(): DataSource {
val config = HikariConfig()
config.jdbcUrl = "jdbc:mysql://localhost:3308"
config.username = "com.mysql.jdbc.Driver"
config.password = "aRootPassword"
config.driverClassName = "com.mysql.jdbc.Driver"

return HikariDataSource(config)

}
}
我的交易看起来像这样:
transaction(Database.connect(DB.db)) {
SchemaUtils.createDatabase("imdb")
}

关于kotlin - 使用 Kotlin Exposed 创建数据库后连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60580518/

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