我可以使用RxJava添加一行,如下所示,
Completable.fromAction(() -> db.userDao().insert(user)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new CompletableObserver() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onComplete() {
}
@Override
public void onError(Throwable e) {
}
});
道:
@Insert(onConflict = OnConflictStrategy.REPLACE)
long insert(User user);
DB操作后如何获取行id?
如果要在Room中使用RxJava,可以更改插入函数以返回RxJava单次包装的长度,如:
@Insert
Single<Long> insert(User user);
这样,您只需订阅这张单张,只要使用以下内容,您就可以获得id:
db.userDao().insert(user)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<Long>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(Long aLong) {
// aLong is the id
}
@Override
public void onError(Throwable e) {
}
});
问题内容: 我正在掌握PDO的基础知识。 但是我试图获取插入的行的ID,我使用: 我遇到的教程都是关于交易的,但是我没有使用交易! 问题答案: 您可能正在寻找lastInsertId。“返回最后插入的行或序列值的ID”。
我正在使用MVVM架构模式创建应用程序。我正在使用RxJava包装器从房间数据库而不是LiveData中获取数据。我已经设置了我的 DAO类和所有必要的方法来执行操作。我想知道如何使用存储库中的Flowable或Watable运算符获取数据。 下面是我的代码: 用户DAO。Java语言 用户epository.java MainActivityViewModel.java 有人请告诉我如何使用Rx
问题内容: 我有一个查询要在表中插入一行,该表有一个名为ID的字段,该字段在列上使用AUTO_INCREMENT填充。我需要为下一个功能获取此值,但是当我运行以下命令时,即使实际值不为0,它也总是返回0: 根据我的理解,这应该返回ID列,但每次仅返回0。有任何想法吗? 编辑: 当我跑步时: 我得到: 问题答案: [编辑:在引用last_insert_id()之前添加了“选择”] 插入后运行“ ”怎
问题内容: 我正在将PHP PDO与PostgreSQL一起用于新项目。 给定以下功能,如何返回刚刚插入的行的ID?它不像现在那样工作。 问题答案: 从手册: 根据基础驱动程序,返回最后插入的行的ID或序列对象的最后一个值。例如,PDO_PGSQL()要求您为name参数指定序列对象的名称。 应该是这样的: [编辑]更新文档链接
我插入批量插入laravel 5像这样: 知道如何获取最后一个插入的id吗?
问题内容: 我目前正在使用以下代码在表中插入数据: 我想返回插入的最后一个ID,但我不知道如何获取它。 亲切的问候! 问题答案: 后 保存 ,应该是最后的ID插入。 可以这样使用。 对于更新的laravel版本,请尝试此