将SELECT中的值存储到变量中

时间:2014-12-16 14:03:12

标签: android mysql

我正在制作一个Android应用程序,它在数据库中有一个名为maintable的表。

首先,当用户安装我的应用程序时,它将在表中为用户创建一行,其中_id为主键。我的用户查询类似于:

INSERT INTO table_name (col1, col2,...) 
VALUES ('val1', 'val2'...);

SELECT LAST_INSERT_ID();

通过这个我肯定得到了主键,但是我想将这个用户主键的值存储到我的应用程序中的变量中,以便我可以使用变量中的该值来引用用户信息。

任何提供的帮助将不胜感激。请...

1 个答案:

答案 0 :(得分:1)

要检索上次插入的ID,您可以执行以下操作:

public int getLastInsertedId(){

        String query = "SELECT id FROM my_table ORDER BY id DESC LIMIT 1";
        Cursor c = db.rawQuery(query, null);
        int lastInsertedId = 0;
        while(c.moveToNext()){

            lastInsertedId = c.getInt(0);

        }
        c.close();

       return lastInsertedId;

    }

然后,您可以将其保存到变量中,例如:

int myId = getLastInsertedId();

如果要保存该ID以供以后使用,可以将其保存在SharedPreferences

public void saveId(int id){
    SharedPreferences sp = getSharedPreferences("SP_ID", MODE_PRIVATE);
    Editor editor = sp.edit();
    editor.putInt("SAVED_ID", id);
    editor.commit();
}

public int getSavedId(){

    SharedPreferences sp = getSharedPreferences("SP_ID", MODE_PRIVATE);
    return sp.getInt("SAVED_ID", 0);

}

然后你可以检索它:

int storedId = getSavedId();