在使用Kotlin创建数据库后连接到该数据库
我正在使用库创建和填充数据库 数据库不存在,我正在创建它。但是,我找不到一种简单的方法来连接SQL引擎、创建数据库并在没有多个连接的情况下连接到该数据库。 听起来有点笨重。也许有更好的方法吗 下面是一个小例子:在使用Kotlin创建数据库后连接到该数据库,kotlin,jdbc,kotlin-exposed,Kotlin,Jdbc,Kotlin Exposed,我正在使用库创建和填充数据库 数据库不存在,我正在创建它。但是,我找不到一种简单的方法来连接SQL引擎、创建数据库并在没有多个连接的情况下连接到该数据库。 听起来有点笨重。也许有更好的方法吗 下面是一个小例子: var db = Database.connect("jdbc:mysql://localhost:3308", driver = "com.mysql.jdbc.Driver", user = "root", password = "aRootPassword") transact
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) }
您需要一个连接池,例如。它汇集数据库连接并重用它们。与单独打开的连接相比,这将大大提高性能 我通常将其包装在一个简单的类中,如下所示:
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")
}