我在具有两列的数据库上有一个表,然后尝试使用webservice,JSON将一些数据从某个URL解析到数据库并保存。我尝试用这种方法
public void saveDataRecord(String id, String name) {
ContentValues contentValues = new ContentValues();
contentValues.put(CATEGORY_COLUMN_ID, id);
contentValues.put(CATEGORY_COLUMN_NAME, name);
database.insert(TABLE_NAME, null, contentValues);
}
但是我也有模型类(包含setter和getter),当我尝试使用列表从数据库中读取数据时可以使用该模型类(它适用于具有数据库内部且已插入值的先前对象)。现在,我想使用它,因为它具有参数,并且对读取列表(查看底部代码)很有用。我有点困惑,如何使用getId,getName或setId,setName?
这?
public void saveDataRecord(TheModelClass blablabla) {
ContentValues contentValues = new ContentValues();
contentValues.put(CATEGORY_COLUMN_ID, blablabla.getId());
contentValues.put(CATEGORY_COLUMN_NAME, blablalbla.getName());
database.insert(TABLE_NAME, null, contentValues);
}
或这个?
public void saveDataRecord(TheModelClass blablabla) {
ContentValues contentValues = new ContentValues();
contentValues.put(CATEGORY_COLUMN_ID, blablabla.setId());
contentValues.put(CATEGORY_COLUMN_NAME, blablalbla.setName());
database.insert(TABLE_NAME, null, contentValues);
}
即使我在其他项目中也做到了
public List<TheModelClass> getAllEffectiveRates() {
List<TheModelClass> EffectiveRates = new ArrayList<TheModelClass>();
String selectQuery = "SELECT * FROM " + TABLE_EFFECTIVE_RATE;
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
TheModelClass example = new TheModelClass();
example.setERId(c.getInt(c.getColumnIndex(KEY_ER_ID)));
example.setERTenor(c.getInt(c.getColumnIndex(KEY_ER_TENOR)));
example.setERRate(c.getDouble(c.getColumnIndex(KEY_ER_RATE)));
// add
EffectiveRates.add(example);
} while (c.moveToNext());
}
// db.close();
c.close();
return EffectiveRates;
}
我仍然对getter和setter的确切功能感到困惑
Getter基本上返回该实例保存的数据。Setter设置要由实例保存的数据。
对于您的情况,在插入数据时,应将getter用作ContentValues实例中的值。因此应该是:
public void saveDataRecord(TheModelClass blablabla) {
ContentValues contentValues = new ContentValues();
contentValues.put(CATEGORY_COLUMN_ID, blablabla.getId());
contentValues.put(CATEGORY_COLUMN_NAME, blablalbla.getName());
database.insert(TABLE_NAME, null, contentValues);
}
获取器将返回一个值。设置器(通常)不会返回值。因此,如果您使用设置器,则只能在ContentValues中设置实例的值,但实际上不会使用它,因为调用不会返回任何内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句