【发布时间】:2021-05-04 08:09:47
【问题描述】:
我确实检查了类似的问题here,但它并没有像我预期的那样工作,我仍然需要重新连接到创建的数据库,我不确定如何避免这种情况,甚至是否可以避免。
这是我的代码:
hikari.properties:
jdbcUrl=jdbc:mariadb://localhost:3306/
driverClassName=org.mariadb.jdbc.Driver
username=root
dataSource.databaseName=DBNAME //this doesn't seem to do much, I'm getting the same behavior with or without it
fun initDB() {
val config = HikariConfig("/hikari.properties")
val ds = HikariDataSource(config)
transaction(connect(ds)) {
SchemaUtils.createDatabase("DBNAME")
}
config.jdbcUrl = "jdbc:mariadb://localhost:3306/DBNAME"
//ds.jdbcUrl = "jdbc:mariadb://localhost:3306/DBNAME" //THIS WILL NOT WORK
val ds2 = HikariDataSource(config)
transaction(connect(ds2)) {
SchemaUtils.create( Tables... )
}
}
我创建一个新数据源的原因是,否则我会得到这个错误:
java.lang.IllegalStateException: The configuration of the pool is sealed once started. Use HikariConfigMXBean for runtime changes. HikariConfigMXBean 似乎不允许更改 jdbcUrl。
一定有更优雅的方式来做到这一点,对吧?
【问题讨论】:
标签: kotlin jdbc hikaricp kotlin-exposed