개발 창고/Android

[Kotlin] "ContentValues"에 Null값 입력 방법 (putNull)

로이제로 2023. 7. 24. 22:00
반응형

SQLite에서 데이터 입력시에 ContentValues가 필요합니다.

val dbHelper:DBHelper = DBHelper(context, "DB명", null, 1)
val database:SQLiteDatabase = dbHelper.writableDatabase

val contentValues = ContentValues()
contentValues.put("title", "[Kotlin] ContentValues putNull")
contentValues.put("contents", "글 메모입니다.")

database.insert("테이블명", null, contentValues)

위는 기본적으로 테이블에 insert하는 로직입니다.

이를 수행하면, title / memo가 "테이블명"이라는 테이블에 입력되게 됩니다.

결과는 아래와 같습니다.

title contents
[Kotlin] To enter a null value for "ContentValues" (putNull) 글 메모입니다.

그런데 만약 제목은 있고 내용은 아직 입력하지 않는 임시저장인 경우 어떻게 해야할까요?

val dbHelper:DBHelper = DBHelper(context, "DB명", null, 1)
val database:SQLiteDatabase = dbHelper.writableDatabase

val contentValues = ContentValues()
contentValues.put("title", "내용은 나중에 입력할게요")
contentValues.put("contents", null)

database.insert("테이블명", null, contentValues)

위와 같이 입력한다면 아래와 같은 contents를 입력 하는 부분에서 오류가 발생합니다.

put에 null을 입력했을때의 오류 화면

put으로는 null을 입력할 수 없고, putNull을 이용해주어야 합니다.

putNull을 이용하여 오류를 해결

위와 같이 putNull("contents")를 해주면, contents에는 null값이 입력되게 됩니다. 하지만 주의해야할 사항은 입력하는 테이블에 contents 컬럼이 null을 허용하는 컬럼인지 반드시 체크해야합니다.

 

※ 이 글은 워드프레스에 작성한 글과 동일한 작성자의 동일한 글입니다.

https://royfactory.net/2023/07/02/kotlin-contentvalues-putnull/

 

[Kotlin] To enter a null value for “ContentValues” (putNull) - ROY FACTORY

SQLite에서 데이터 입력시에 ContentValues가 필요합니다. val dbHelper:DBHelper = DBHelper(context, "DB명", null, 1) val database:SQLiteDatabase = dbHelper.writableDatabase val contentValues = ContentValues() contentValues.put("title", "[Kotli

royfactory.net

 

반응형