// 錯誤代碼
private void insertData(SQLiteDatabase db, String word, String detail) {
db.execSQL("insert into dict values(null,?,?)" + new String[]{word, detail});
}
錯誤:"sql" + String[] 會呼叫陣列 toString() 產生 "[Ljava.lang.String;@hashcode",非合法 SQL。
// 修正版
private void insertData(SQLiteDatabase db, String word, String detail) {
db.execSQL("insert into dict (word, detail) values(?,?)",
new String[]{word, detail});
}
建表 SQL:create table dict(_id integer primary key autoincrement, word text, detail text);
插入時指定欄位 (word, detail),_id 自動遞增,避免 null 佔位報錯。
detail vs details(原代碼不一致)。getString(1) 對應 word,getString(2) 對應 detail,正確。putSerializable 需確保 Map 實作 Serializable(HashMap 已實作)。
