数据库不存在,我正在创建它。然而,我找不到一种简单的方法来连接到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) }发布于 2020-09-30 16:16:11
您需要一个连接池,例如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")
}https://stackoverflow.com/questions/60580518
复制相似问题