[kotlin] 코틀린에서 MySQL과의 데이터베이스 연동

코틀린은 자바 플랫폼에서 동작하는 현대적인 프로그래밍 언어이며, 데이터베이스와의 연동을 위해 다양한 라이브러리와 도구를 제공합니다. 이 글에서는 코틀린에서 MySQL 데이터베이스에 연결하고 데이터를 읽고 쓰는 방법에 대해 살펴보겠습니다.

MySQL 드라이버 의존성 추가

먼저, MySQL과의 연동을 위해 MySQL JDBC 드라이버에 대한 의존성을 추가해야 합니다. Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

dependencies {
    implementation "mysql:mysql-connector-java:8.0.25"
}

Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>

의존성을 추가한 뒤에는 프로젝트를 다시 빌드하여 의존성을 가져옵니다.

데이터베이스 연결

이제 MySQL 데이터베이스에 연결하는 방법을 알아보겠습니다. 다음은 코틀린을 사용하여 데이터베이스에 연결하는 예제 코드입니다.

import java.sql.Connection
import java.sql.DriverManager

fun main() {
    val url = "jdbc:mysql://localhost:3306/your_database"
    val user = "username"
    val password = "password"

    val connection: Connection = DriverManager.getConnection(url, user, password)

    // 데이터베이스 작업 수행
    // ...

    connection.close()
}

위 예제에서 url, user, password를 각각 해당하는 데이터베이스 URL, 사용자 이름, 암호로 대체해야 합니다.

데이터베이스 작업 수행

이제 연결된 데이터베이스에서 데이터를 읽고 쓰는 방법을 알아보겠습니다. 코틀린에서는 JDBC API를 사용하여 데이터베이스 작업을 수행할 수 있습니다.

예를 들어, 데이터를 읽어오는 예제 코드는 다음과 같습니다.

import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet

fun main() {
    val url = "jdbc:mysql://localhost:3306/your_database"
    val user = "username"
    val password = "password"

    val connection: Connection = DriverManager.getConnection(url, user, password)
    val statement = connection.createStatement()
    val resultSet: ResultSet = statement.executeQuery("SELECT * FROM your_table")

    while (resultSet.next()) {
        val id = resultSet.getInt("id")
        val name = resultSet.getString("name")
        println("id: $id, name: $name")
    }

    connection.close()
}

위 예제에서 your_databaseyour_table을 실제 데이터베이스 및 테이블 이름으로 대체해야 합니다.

결론

코틀린을 사용하여 MySQL 데이터베이스에 연결하고 데이터를 읽고 쓰는 방법을 살펴보았습니다. JDBC를 사용하면 코틀린으로 간단하게 데이터베이스와 상호작용할 수 있습니다. 데이터베이스 연동 코드를 작성할 때는 보안을 고려하여 사용자 이름과 암호를 하드코딩하지 않고 안전하게 관리하는 것이 중요합니다.

참고 문헌: