gpt4 book ai didi

Android Contentprovider - 在插入方法中更新

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:00 25 4
gpt4 key购买 nike

是否可以在内容提供者的 insert() 覆盖方法中调用 SQLiteDatabase 更新方法?

最佳答案

基本上没问题,但由于你没有提供代码,我只能发布2种可能的方法

首先:

// In your content provider
public Uri insert(...) {
long insertId = db.insert(...);

if(insertId == -1) {
// insert failed, do update
db.update(...);
}
}

第二个:

public Uri insert(...) {
long insertId = db.insertWithOnConflict(table, null, values, SQLiteDatabase.CONFLICT_REPLACE)

if(insertId == -1) {
// insert and update/replace failed
}
}

查看 SQLiteDatabase供第四个参数引用。在大多数情况下,最后一种方法应该足够了,除非您希望在行存在时仅更新某些字段,而在行不存在时更新所有字段。

insertWithOnConflict 最有用的需求可能是,您可以插入一行,如果它已经存在,则忽略插入,而是返回已存在行的 Uri/主键。

关于Android Contentprovider - 在插入方法中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com