Kotlin 本身是一種靜態類型編程語言,它運行在 Java 虛擬機(JVM)上。因此,Kotlin 可以直接使用 Java 生態系統中的庫和框架。在處理 MySQL 連接池時,Kotlin 可以利用諸如 HikariCP、Apache DBCP 或 C3P0 等流行的 Java 連接池庫。
以下是使用 Kotlin 連接 MySQL 數據庫并使用 HikariCP 連接池的示例:
build.gradle
文件中添加以下依賴項:implementation 'com.zaxxer:HikariCP:4.0.3'
implementation 'mysql:mysql-connector-java:8.0.26'
DatabaseConnectionPool
類來封裝 HikariCP 連接池:import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
class DatabaseConnectionPool(jdbcUrl: String, username: String, password: String) {
private val dataSource: HikariDataSource
init {
val config = HikariConfig()
config.jdbcUrl = jdbcUrl
config.username = username
config.password = password
config.addDataSourceProperty("cachePrepStmts", "true")
config.addDataSourceProperty("prepStmtCacheSize", "250")
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048")
config.addDataSourceProperty("useServerPrepStmts", "true")
dataSource = HikariDataSource(config)
}
fun getConnection(): Connection {
return dataSource.connection
}
fun close() {
dataSource.close()
}
}
DatabaseConnectionPool
類來獲取數據庫連接:import java.sql.Connection
fun main() {
val jdbcUrl = "jdbc:mysql://localhost:3306/my_database?useSSL=false&serverTimezone=UTC"
val username = "your_username"
val password = "your_password"
val connectionPool = DatabaseConnectionPool(jdbcUrl, username, password)
// 獲取數據庫連接并執行查詢
val connection: Connection = connectionPool.getConnection()
val resultSet = connection.createStatement().executeQuery("SELECT * FROM my_table")
while (resultSet.next()) {
println("ID: ${resultSet.getInt("id")}, Name: ${resultSet.getString("name")}")
}
// 關閉資源
resultSet.close()
connection.close()
connectionPool.close()
}
這個示例展示了如何在 Kotlin 中使用 HikariCP 連接池連接到 MySQL 數據庫。你可以根據自己的需求調整配置參數。注意在實際應用中,請確保不要將敏感信息(如數據庫憑據)硬編碼在代碼中,而是使用配置文件或環境變量來管理這些信息。