getBalance(余额平衡)功能的“余额平衡”部分是什么意思?

时间:2013-08-08 21:55:00

标签: java android database sqlite function

我有这个函数应该更新我的SQLite数据库中的余额。参数是余额余额。我有一个Balance类,我猜这是用来帮助的,但我对此并不熟悉。我习惯于说类似updateBalance(int id,String amount)有人可以向我解释一下这里发生了什么吗? SQLite世界的新手。

我的updateBalance函数:

//Updating single Balance
public int updateBalance(Balance balance){
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_AMOUNT, balance.getAmount());

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

我的余额等级:

package com.example.budge_it2;

public class Balance {

    //private variables
    int _id;
    String _amount;

    //Empty constructor
    public Balance(){

    }
    //Constructor
    public Balance(int id, String amount){
        this._id = id;
        this._amount = amount;
    }

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

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

    //getting amount
    public String getAmount(){
        return this._amount;
    }
    //setting amount
    public void setAmount(String amount){
        this._amount = amount;
    }
}

2 个答案:

答案 0 :(得分:1)

Balance是一个域对象。而不是在这里传递相关的原语(IDamount);它们已被封装到Balance对象中。这就是数据如何通过后端数据库流经应用程序的不同层。

您从中获得的好处之一是,如果您决定添加或删除要交换的数据,您的类接口(方法签名)不会更改。例如,如果您觉得以后需要传递另一个Balance值(例如,overdraft_limit),则只需要修改Balance类。交换Balance个对象的所有其他类都不受此更改的影响。

编辑
您的方法返回Balance对象

public Balance getBalance(int id) { /* code */ }

因此,在您尝试打印返回值时的行

// You're actually printing Balance obj here
Log.d("Getting : ", "testing " + db.getBalance(1));

但是,Balance不是原始的,因此Log.d()不知道如何打印它amount和/或ID。因此,每当我们定义自己的自定义类时,我们通常会实现toString()方法,以便能够获取其对象的文本表示。

因此,请将以下内容添加到Balance

@Override
public String toString() {
    return "Balance [ID=" + _id + ", Amount=" + _amount + "]";
}

现在,每当您尝试打印Balance对象时,您都会看到显示_id_amount

答案 1 :(得分:0)

就像在“int id”或“String amount”中一样,第一个单词是类型,第二个单词是该类型实例的参数名称。