使用Kotlin连接到MariaDB 10.4

最近我尝试使用最受欢迎的 Kotlin 语言与 MariaDB Connector/J (JDBC 驱动程序) 连接到 MariaDB 10.4 数据库。

我使用Java转Kotlin的方法,将之前写的文章中的Java示例代码转换为Kotlin,并进行了一些手动修正。

使用MariaDB Connector/J连接到MariaDB 10.4

样本代码

import java.sql.*
import org.mariadb.jdbc.internal.util.constant.Version

object jdbc_sample {
    @JvmStatic fun main(args:Array<String>) {
        var conn: Connection? = null
        var stmt: Statement? = null
        var resultSet: ResultSet
        try {
            Class.forName("org.mariadb.jdbc.Driver")
            println("MariaDB Connector/J: " + Version.version + "\n")
            print("Connecting to DB...")
            conn = DriverManager.getConnection(
                    "jdbc:mariadb://192.168.2.104/mysql",
                    "db_user", "db_passwd")
            println("done.")
            stmt = conn.createStatement()
            resultSet = stmt.executeQuery("SELECT user, host FROM mysql.user")
            println("\nList of MariaDB users:")
            while (resultSet.next()) {
                var user = resultSet.getString(1)
                var host = resultSet.getString(2)
                println(user + "@'" + host + "'")
            }
        }
        catch (ex: SQLException) {
            ex.printStackTrace()
        }
        catch (ex: Exception) {
            ex.printStackTrace()
        }
        finally {
            try {
                if (stmt != null) {
                    conn?.close()
                }
            }
            catch (ex:SQLException) {}
            try {
                if (conn != null) {
                    conn.close()
                }
            }
            catch (ex: SQLException) {
                ex.printStackTrace()
            }
        }
    }
}

build.gradle.kts 可以用以下方式翻译成中文:构建.gradle.kts

这次通过使用Gradle进行构建和执行。
首先执行以下命令。

gradle init --type kotlin-application

我已经根据以下的 build.gradle.kts 进行了以下的修正。


plugins {
    id("org.jetbrains.kotlin.jvm").version("1.3.21")
    application
}
repositories {
    jcenter()
}
dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    implementation("org.mariadb.jdbc:mariadb-java-client:2.4.4")
}
application {
    mainClassName = "jdbc_sample"
}

MariaDB Connector/J 在2019年10月06日时使用的是最新版本的2.4.4。

建造

首先,尝试只进行 gradle build 构建。

C:\Users\foo\kotlin\jdbc_sample>gradle build

BUILD SUCCESSFUL in 1s
6 actionable tasks: 5 executed, 1 up-to-date

执行结果

使用Gradle运行示例程序。

C:\Users\foo\kotlin\jdbc_sample>gradle run

> Task :run
MariaDB Connector/J: 2.4.4

Connecting to DB... done.

List of MariaDB users:
db_user@'%'
mysql@'localhost'
root@'localhost'

BUILD SUCCESSFUL in 2s
2 actionable tasks: 1 executed, 1 up-to-date

似乎没有问题。