scala - 以编程方式灵活访问数据源
问题描述
我有一个这样的对象:
object DatabaseFactory {
import slick.jdbc.PostgresProfile.api._
private val db = Database.forConfig("database.postgresql")
def getDatabase = db
}
和这样的配置:
database {
postgresql {
connectionPool = "HikariCP"
dataSourceClass = "org.postgresql.ds.PGSimpleDataSource"
properties = {
serverName = "localhost"
portNumber = "5432"
databaseName = "myProject"
user = "user"
password = "userPass"
}
numThreads = 10
}
}
有什么方法可以从 slick 获取 javax.sql.DataSource 吗?
我需要一个来自 slick 的PGSimpleDataSource实例。
我想在 Flyway 配置上使用它:
Flyway.configure()
.baselineOnMigrate(true)
.locations("filesystem:/etc/myProject/db-scripts")
.dataSource(??? Need DataSource ???)
解决方案
有什么方法可以从 slick 获取 javax.sql.DataSource 吗?
我不这么认为,但我能够获得一个 slick.jdbc.JdbcDataSource 的实例,然后我使用了与我一直使用 javax.sql.DataSource 完全相同的方式。创建连接,然后是preparedstatement,然后处理结果集。全部都一样。
db.source
我知道这很旧,但想提供一个尝试的选项,它不像创建自己的数据源实例的其他答案那样激烈。
推荐阅读
- reactjs - 我正在尝试为我的平面列表添加 touchableOpacity 但它不起作用所以我使用了按钮所以现在我收到了这个错误
- sql - 如何从 db2 中的现有表中获取 CREATE TABLE 语句?
- .htaccess - 如何将/的索引重定向到网站?
- git - 推送到新分支会在 GitHub 上引发 403 错误
- javascript - 苗条的包应该是依赖项还是 devDependency?
- ios - SwiftUI 导航返回到特定视图
- json - 使用 cubePosition 数据编写 JSON 文件以生成 10x10x10 立方体
- spring-boot - @Value lateinit var 仅在从测试调用时才被实例化
- python - Python:当多列具有相同的值时,将最后一列替换为null
- javascript - 选择属性不会在 CKEditor5 中返回完整信息