之前我们连线的,一直都是测试用的资料库。
今天我们来练线 MySQL 资料库来进行操作。
目前有不少网站的资料库实作,是透过 MySQL 资料库,我们来尝试连线 MySQL 资料库。
假设各位在本机已经有一个正在运行的 MySQL 资料库,首先,我们要在套件内多安装 mysql connector 套件
implementation("mysql:mysql-connector-java:5.1.48")
和前面文章安装 Exposed 框架时一样,记得要 Load Gradle Change
接着只要我们调整连线方式
Database.connect(
"jdbc:mysql://localhost:3306/exposedyoutubedemo?useSSL=false",
driver = "com.mysql.jdbc.Driver",
user = "user",
password = "password"
)
这样连线之後,我们就可以将连线的资料库从 H2 Database,切换到 MySQL 资料库了。
如果我们在後面加上资料库互动的程序
transaction {
SchemaUtils.create(Users)
User.new {
name = "Alice"
}
User.new {
name = "Bob"
}
User.all().forEach {
println(it.name)
}
}
就会像之前一样看到写入资料库的内容
Alice
Bob
要注意的是,由於我们这边不是用 "jdbc:h2:mem:test"
,所以资料不会在程序终止之後消失。如果我们重复执行上述的程序码,会导致资料重复写入。
如果我们要连线多个资料库,我们可以
val db1 = Database.connect(
"jdbc:mysql://localhost:3306/exposedyoutubedemo?useSSL=false",
driver = "com.mysql.jdbc.Driver",
user = "sail",
password = "password"
)
val db2 = Database.connect(
"jdbc:mysql://localhost:3306/exposedyoutubedemo?useSSL=false",
driver = "com.mysql.jdbc.Driver",
user = "sail",
password = "password"
)
取得连线物件之後,我们在 transaction()
函数内,加上 db1
和 db2
参数,来进行对不同资料库的连线
transaction(db1) {
SchemaUtils.create(Users)
User.new {
name = "Alice"
}
}
transaction(db2) {
SchemaUtils.create(Users)
User.new {
name = "Bob"
}
User.all().forEach {
println(it.name)
}
}
执行这段程序之後,由於我们的 db1
和 db2
实际上都是连线我们的 MySQL 资料库,所以我们会看到最後成功印出
Alice
Bob
>>: [Day4]在Rock pi4 上安装Armbian
前端系虾米? 身为一个麻瓜,当初在看到前端两个字, 着实就猜想不就字面意思?应该系前後面,反之另一个...
Growth of a Population 等级:7kyu 原始题目 In a small tow...
案例说明及适用场景 会计科目与客户,一般常用的蒐寻,若还需其他统计效果,可以使用分析帐户或分析标签 ...
接下来说说我觉得非常好用的两个函数 getRange 与 getDataRange 这两个函数在取得...
前言 原本以为生命周期应该很好懂, 但我卡在别的地方, 不过快 12 点了啊我先 po 出我目前进度...