SQLite 無原生陣列型別,常見做法是將字串陣列以特殊分隔符(如 |、,、|||)串接成單一字串存入 TEXT 欄位,讀取時再 split 還原。
String[] tags = {"android", "java", "sqlite"};
String joined = String.join("|||", tags); // "android|||java|||sqlite"
// 執行 INSERT/UPDATE 將 joined 存入資料庫
String joined = cursor.getString(cursor.getColumnIndex("tags"));
String[] tags = joined.split("\\|\\|\\|"); // 正則轉義管道符
// tags 即為原始陣列
|||、###)較單字元安全。new JSONArray(tags).toString() 存入,new JSONArray(jsonStr).toList() 還原。此法適合純儲存與整體讀取場景。若需 SQL 層面搜尋陣列元素(如 WHERE tags LIKE '%java%'),效能差且易誤判;建議改用關聯表(item_tags(item_id, tag))正規化設計。
簡單場景用 join/split,複雜查詢用關聯表,是 SQLite 處理陣列資料的兩大範式。