【发布时间】:2017-03-30 05:29:57
【问题描述】:
尝试将字符串数组插入表中,但插入的 id 没有增加,并且第一个字符串已插入。我对 id 使用自动增量?
表创建
//Multi Farm Table
String CREATE_MULTI_FARM_TABLE = "CREATE TABLE " + TABLE_MULTI_FARM + "(" +
KEY_MULTI_FARM_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_MULTI_FARM_FARM_NAME + " TEXT" + ")";
db.execSQL(CREATE_MULTI_FARM_TABLE);
插入记录函数
//Add Multi Farm
public void addMultiFarm(MultiFarmModel multiFarm) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_MULTI_FARM_ID, multiFarm.getId());
values.put(KEY_MULTI_FARM_FARM_NAME, multiFarm.getFarmName());
//Insert Record
Log.e("StringInsertId", "" + db.insert(TABLE_MULTI_FARM, null, values));
db.close();
}
类中的函数
public MultiFarmModel(String farmName){
this.farmName = farmName;
}
插入代码
String smsContent = "InsertToTable A|B|C|D|E";
DBHandler db = new DBHandler(context);
smsContent = smsContent.substring(smsContent.indexOf(" ")+1);
String[] string = smsContent.split("\\|");
db.deleteAllMultiFarmRecord();
for (String s : string) {
Log.e("StringToInsert", s + " ? ");
db.addMultiFarm(new MultiFarmModel(s));
}
}
日志控制台
E/String Number: A|B|C|D|E
E/StringToInsert: A ?
E/StringInsertId: 0
E/StringToInsert: B ?
E/StringInsertId: -1
E/StringToInsert: C ?
E/StringInsertId: -1
E/StringToInsert: D ?
E/StringInsertId: -1
E/StringToInsert: E ?
E/StringInsertId: -1
【问题讨论】:
-
不需要输入
values.put(KEY_MULTI_FARM_ID, multiFarm.getId());,因为它会自动递增。
标签: java android sqlite android-studio