在android中使用rawQuery查询数据库

时间:2014-09-01 02:20:17

标签: android mysql sql

我正在编写一个简单的查询,可以从android中的表中获取特定的字段记录。

这是我的表设计:

用户ID,姓名,总标记,(所有字符串)

这是我的查询:

public String getTotalMarks(String UserID)
{
    String mark = "0";

    SQLiteDatabase db = this.getWritableDatabase(); 

    String queryMarks = "SELECT * FROM " +TABLE_MARK_DETAILS +" WHERE " +KEY_USERID + " =" + UserID  ;
    Cursor cursor = db.rawQuery(queryMarks, null);

    if (cursor.moveToFirst()) 
    {
        do 
        {
            mark = cursor.getString(0);
        } 
        while (cursor.moveToNext());
    }

    Log.e("Cursor", "Value" +mark);

    cursor.close();
    db.close();

    return mark;
}

我得到了完美的结果。我想知道有没有比上面更好的查询数据库的方法?

1 个答案:

答案 0 :(得分:1)

    public String getTotalMarks(String UserID) {
        String mark = null;
        SQLiteDatabase db = this.getReadableDatabase(); 
        String queryMarks = "SELECT " + KEY_TOTALMARKS + " FROM " +  TABLE_MARK_DETAILS + " WHERE " +KEY_USERID + " =" + UserID;
        Cursor cursor = db.rawQuery(queryMarks, null);

        if(null != cursor){
            if(cursor.moveToFirst() && 0 < cursor.getCount()){
                mark = cursor.getString(0);
            }
            cursor.close();
        }
        Log.e("Cursor", "Value" + mark);
        db.close();

        return TextUtils.isEmpty(mark) ? "0" : mark;
    }