插入后获取生成的 ID
我正在将SQLite与Android一起使用,我想知道获取我插入的行的生成id的最佳方法。
我认为一个解决方案使搜索后包含,但它看起来不是最好的方式。
我正在将SQLite与Android一起使用,我想知道获取我插入的行的生成id的最佳方法。
我认为一个解决方案使搜索后包含,但它看起来不是最好的方式。
如果使用内容值 :
DBHelper db =new DBHelper();// your dbHelper
ContentValues values = new ContentValues();
values.put("firstName","Ahmad");
values.put("lastName","Aghazadeh");
long insertedId= db.getSQLiteDatabase().insert("user", "", values) ;
如果查询执行器使用select last_insert_rowid()
String sql = "INSERT INTO [user](firstName,lastName) VALUES (\"Ahmad\",\"Aghazadeh\"); select last_insert_rowid()";
DBHelper itemType =new DBHelper();// your dbHelper
c = db.rawQuery(sql, null);
if (c.moveToFirst())
result = c.getLong(0);
如果使用房间
@Entity
class User {
@PrimaryKey(autoGenerate = true)
public int id;
//...
}
@Dao
public interface UserDao{
@Insert(onConflict = OnConflictStrategy.REPLACE)
long insert(User user);
// Insert multiple users
@Insert(onConflict = OnConflictStrategy.REPLACE)
long[] insert(User... user);
}