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

GreenDAO는 안드로이드 앱의 데이터베이스를 관리하기 위한 ORM(Object-Relational Mapping) 라이브러리로, 코틀린을 사용하여 안드로이드 앱을 개발하는 경우 GreenDAO를 통해 데이터베이스를 연동할 수 있습니다.

GreenDAO 라이브러리 추가

먼저, build.gradle 파일에 다음과 같이 GreenDAO 라이브러리를 추가합니다.

implementation 'org.greenrobot:greendao:3.3.0'

그리고 다음과 같이 Kotlin으로 작성된 클래스를 Entity로 정의합니다.

@Entity
class User {
    @Id
    var id: Long = 0
    var name: String? = null
    var email: String? = null
}

위의 코드에서 @Entity는 Entity 클래스임을 나타내고, @Id는 해당 필드가 데이터베이스의 Primary Key임을 나타냅니다.

GreenDAO 코드 생성

그 다음에는 GreenDAO 코드 생성을 실행해야 합니다. 해당 코드는 greenDao 패키지에 자동으로 생성됩니다. 코드 생성은 Gradle의 Task를 실행하거나, Build > Make Project 또는 Rebuild Project를 통해 수행할 수 있습니다.

데이터베이스 연결 설정

GreenDAO 클래스를 작성하여 데이터베이스에 접속합니다.

class DatabaseManager(context: Context) {

    private val devOpenHelper: DaoMaster.DevOpenHelper
    private val daoMaster: DaoMaster
    val daoSession: DaoSession

    init {
        devOpenHelper = DaoMaster.DevOpenHelper(context, "dbname", null)
        val db = devOpenHelper.writableDb
        daoMaster = DaoMaster(db)
        daoSession = daoMaster.newSession()
    }
}

위의 코드에서는 DaoMasterDaoSession 객체를 사용하여 데이터베이스에 연결하고, DevOpenHelper를 통해 데이터베이스의 업데이트를 관리합니다.

데이터베이스 조작

마지막으로, 코틀린 코드에서 GreenDAO를 사용하여 데이터베이스를 조작할 수 있습니다.

val user = User()
user.name = "John Doe"
user.email = "john@example.com"
daoSession.userDao.insert(user)

위의 코드에서는 user 객체를 생성하고, daoSession을 통해 해당 객체를 데이터베이스에 삽입합니다.

이제 코틀린으로 GreenDAO를 사용하여 데이터베이스를 조작하는 방법에 대해 알아보았습니다. GreenDAO를 사용하면 안드로이드 앱의 데이터베이스를 효율적으로 관리할 수 있으며, 코틀린과의 호환성도 뛰어나기 때문에 안정적인 앱을 개발할 수 있습니다.

끝.