我正在制作一个Android应用程序,它在数据库中有一个名为maintable的表。
首先,当用户安装我的应用程序时,它将在表中为用户创建一行,其中_id为主键。我的用户查询类似于:
INSERT INTO table_name (col1, col2,...)
VALUES ('val1', 'val2'...);
SELECT LAST_INSERT_ID();
通过这个我肯定得到了主键,但是我想将这个用户主键的值存储到我的应用程序中的变量中,以便我可以使用变量中的该值来引用用户信息。
任何提供的帮助将不胜感激。请...
答案 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();