반응형
이전에 joinToString에 대해 글을 쓴 적이 있습니다
2023.07.23 - [개발 창고/안드로이드 개발] - [Kotlin] String 배열을 한 개의 String으로 만드는 방법
1. 기본 방법
SQLite에서는 이를 활용해서 IN절의 조건을 넣을 수 있습니다.
만약 아래와 같은 상품 코드 기준의 상품을 삭제하는 Query를 실행해야 한다면
DELETE
FROM PRODUCT
WHERE PRDT_CODE IN (1, 2, 3, 4, 5)
// 삭제할 상품 코드 목록
val params = arrayListOf(1, 2, 3, 4, 5)
// SQLite Helper
val dbHelper:DBHelper = DBHelper(context, "데이터베이스명", null, 1)
// 쓰기 데이터베이스
val database = dbHelper.writableDatabase
// 삭제 실행
val tableName = "PRODUCT"
database.delete(PRODUCT, "PRDT_CODE in (?)", arrayOf(params.joinToString()))
위와 같이 실행하면 1~5번 코드의 상품이 "데이터베이스명" 데이터베이스의 "PRODUCT" 테이블에서 삭제 되게 됩니다.
2. 문자열 기준 방법
위의 경우에는 상품 코드가 INTEGER형인 경우이고, 만약 TEXT형인 경우 ('P001', 'P002', 등)인 경우에는 joinToString의 prefix와 postfix로 조정 가능합니다.
val params = arrayListOf("P001", "P002", "P003", "P004", "P005")
val code = params.joinToString("', '", "'", "'")
println(code)
위에 소스를 수정하면 아래와 같이 params와 joinToString이 변경되게 되고,
// 삭제할 상품 코드 목록
val params = arrayListOf("P001", "P002", "P003", "P004", "P005")
// SQLite Helper
val dbHelper:DBHelper = DBHelper(context, "데이터베이스명", null, 1)
// 쓰기 데이터베이스
val database = dbHelper.writableDatabase
// 삭제 실행
val tableName = "PRODUCT"
database.delete(PRODUCT, "PRDT_CODE in (?)", arrayOf(params.joinToString("', '", "'", "'")))
결과 Query는 아래와 같습니다.
DELETE
FROM PRODUCT
WHERE PRDT_CODE IN ('P001', 'P002', 'P003', 'P004', 'P005')
※ 이 글은 워드프레스에 작성한 글과 동일한 작성자의 동일한 글입니다.
https://royfactory.net/2023/07/03/kotlin-sqlite-in-use/
반응형
'개발 창고 > Android' 카테고리의 다른 글
[Kotlin] EditText에서 이벤트를 처리하는 방법 (0) | 2023.07.28 |
---|---|
[Kotlin] TextView에 Bold와 Italic체를 적용하는 방법 (0) | 2023.07.27 |
[Kotlin] Confirm 창을 사용하는 방법 (0) | 2023.07.26 |
[Kotlin] FrameLayout을 이용하여 겹치게 배치하는 방법 (0) | 2023.07.25 |
[Kotlin] TextView와 EditText에 텍스트를 입력하는 방법 (0) | 2023.07.25 |