[kotlin] 코틀린에서의 데이터베이스 변환 함수

코틀린은 객체지향 프로그래밍 언어로서 데이터베이스와의 상호작용을 많이 지원합니다. 데이터베이스에서 쿼리를 실행하고, 결과를 객체로 변환하는 작업이 일반적입니다. 이때 데이터베이스의 결과를 코틀린 객체로 변환하는 함수가 필요합니다.

데이터베이스 변환 함수 작성 예시

다음은 코틀린에서 데이터베이스 결과를 변환하는 함수의 예시입니다. 이 예시에서는 데이터베이스의 테이블에서 User 객체로 변환하는 함수를 작성하였습니다.

data class User(val id: Int, val name: String, val age: Int)

fun ResultSet.toUser(): User {
    val id = getInt("id")
    val name = getString("name")
    val age = getInt("age")
    return User(id, name, age)
}

위의 예시에서 ResultSet 클래스의 확장 함수로 toUser 함수를 작성하였습니다. ResultSet는 JDBC를 통해 데이터베이스에서 결과를 가져올 때 사용하는 클래스입니다. toUser 함수에서는 ResultSet의 각 컬럼을 가져와서 User 객체를 생성하여 반환합니다.

사용 예시

변환 함수를 작성한 후에는 이를 실제로 사용해야 합니다. 다음은 데이터베이스에서 사용자 정보를 조회하는 예시입니다.

fun getUser(): User? {
    val conn = DriverManager.getConnection("jdbc:mysql://localhost/dbname", "username", "password")
    val stmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?")
    stmt.setInt(1, 1)
    val resultSet = stmt.executeQuery()
    return resultSet.use { it.next().toUser() }
}

위의 예시에서는 데이터베이스에 접속한 후에 users 테이블에서 id가 1인 사용자 정보를 조회하는 쿼리를 실행합니다. 그리고 ResultSet 객체의 첫 번째 레코드를 toUser 함수를 사용하여 User 객체로 변환하여 반환합니다.

이렇게 코틀린에서 데이터베이스 변환 함수를 작성하고 사용할 수 있습니다. 데이터베이스와의 상호작용이 많은 경우에는 이러한 변환 함수를 효율적으로 사용하여 코드를 간결하고 가독성있게 작성할 수 있습니다.

참고 자료