java - Android getter和setter,数据库sqlite(辅助类)

标签 java android sqlite

我在数据库上有一个包含两列的表,然后我尝试使用 web 服务,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 到底做了什么感到困惑

最佳答案

是的,你可以使用 Get Set 方法

public class GetSetClass {

// private variables
int _id;
String _data;


// Empty constructor
public GetSetClass() {
}

// constructor
public GetSetClass(int id, String data) {
    this._id = id;
    this._DataList_id = DataList_id;
}

// constructor
public GetSetClass(String data) {
    this._data = data;
}

// getting ID
public int getID() {
    return this._id;
}

// setting id
public void setID(int id) {
    this._id = id;
}

public String getdata() {
    return this._data;
}

public void setdata(String data) {
    this._data = data;
}
}

使用getset设置数据见下面代码

public List<GetSetClass> getAllgetsets() {
    List<GetSetClass> getsetList = new ArrayList<GetSetClass>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_CATEGORY;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            GetSetClass getset = new GetSetClass();
            getset.setID(Integer.parseInt(cursor.getString(0)));
            getset.setData(cursor.getString(1));
            getsetList.add(getset);
        } while (cursor.moveToNext());
    }

    // return getset list
    return getsetList;
}

查看下面使用getset获取数据的代码

public int updategetset(GetSetClass getset) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(KEY_data, getset.getData()); 

    // updating row
    return db.update(TABLE_CATEGORY, values, KEY_ID + " = ?",
            new String[] { String.valueOf(getset.getID()) });
}

关于java - Android getter和setter,数据库sqlite(辅助类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694341/

相关文章:

sqlite - 将现有的 sqlite 数据库导入 Swift 项目

c - 为什么使用 "strlen30()"而不是 "strlen()"?

java - 如何在java中使用ecdh key 通过对称 key 加密和解密?

java - 非静态比较器内部类

Android KitKat multidex 应用程序崩溃

android - 如何在 SQLite 中保存 pdf 文件

iphone - Firefox SQLite Manager无法访问Xcode iPhone模拟器SQLite DB目录

java - 在代码中获取 AWS Lambda 函数的别名

java - Android things : 1. 0.0 问题 : Superclass com. google.android.things.pio.GpioCallback com.google.android.things.contrib.driver.button

android - 使用 Gradle 任务运行单元测试时出现 NoClassDefFoundError