首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用公开的Kotlin创建数据库后连接到该数据库

问在使用公开的Kotlin创建数据库后连接到该数据库
EN

Stack Overflow用户
提问于 2020-03-08 01:48:46
回答 1查看 2.1K关注 0票数 2

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

下面是一个小示例:

代码语言:javascript
复制
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) }
EN

回答 1

Stack Overflow用户

发布于 2020-09-30 16:16:11

您需要一个连接池,例如HikariCP。它将数据库连接汇集在一起并重用它们。与单独打开的连接相比,这会给您带来巨大的性能提升。

我通常将其封装在一个简单的类中,如下所示:

代码语言:javascript
复制
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)

    }
}

然后,我的事务如下所示:

代码语言:javascript
复制
transaction(Database.connect(DB.db)) {
   SchemaUtils.createDatabase("imdb")
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60580518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档