你知道如何在android realm java中设置自动增量ID吗,我知道在这个时候没有内置的支持,就像sq lite一样。如何在Android realm-java中设置自动增量ID?
-3
A
回答
0
我觉得我有东西给这个问题的工作,但我不知道有什么危害有整个但我觉得它有点虽然缓慢,但反正下面是代码: 的逻辑是:
- 得到RealmObject(例如DbArticle.java它扩展Realmobject)
- 检查数据对象,如果其空,如果为空,则使条款ArticleID值设置为1,否则不为空,则获得最后最高条款ArticleID的价值然后添加1,随着新数据被添加到领域数据库,不断回顾这一点。
代码:
的DbArticle.java是:
public class DbArticle extends RealmObject {
private String articleTitle,articleDate,articleDescription,articleImage,articleAudioFile;
private boolean articleIsReadYet;
private int articleID;
public String getArticleTitle() {
return articleTitle;
}
public void setArticleTitle(String articleTitle) {
this.articleTitle = articleTitle;
}
public String getArticleDate() {
return articleDate;
}
public void setArticleDate(String articleDate) {
this.articleDate = articleDate;
}
public String getArticleDescription() {
return articleDescription;
}
public void setArticleDescription(String articleDescription) {
this.articleDescription = articleDescription;
}
public String getArticleImage() {
return articleImage;
}
public void setArticleImage(String articleImage) {
this.articleImage = articleImage;
}
public String getArticleAudioFile() {
return articleAudioFile;
}
public void setArticleAudioFile(String articleAudioFile) {
this.articleAudioFile = articleAudioFile;
}
public boolean isArticleIsReadYet() {
return articleIsReadYet;
}
public void setArticleIsReadYet(boolean articleIsReadYet) {
this.articleIsReadYet = articleIsReadYet;
}
public int getArticleID() {
return articleID;
}
public void setArticleID(int articleID) {
this.articleID = articleID;
}
}
然后创建)称为writeArticle(的方法只是为了插入或写入到境界,见下文:
public void writeArticle(String ... args){
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
DbArticle conx = realm.createObject(DbArticle.class); // Create a new object
conx.setArticleTitle(args[0]);
// Log.e("xxx","--->wrote:"+args[0]);
conx.setArticleDescription(args[1]);
conx.setArticleDate(args[2]);
conx.setArticleImage(args[3]);
conx.setArticleIsReadYet(false);
conx.setArticleAudioFile(args[4]);
String VideoUrl=args[5];
RealmResults<DbArticle> results = realm.where(DbArticle.class).findAll();
if (results.isEmpty() && results.size() < 1) {
final int INIT_ID = 0;
conx.setArticleID(INIT_ID);
} else {
final int ADD_ID = 1;
conx.setArticleID(
results.max("articleID").intValue() + ADD_ID
);
}
realm.commitTransaction();
realm.close();
}
所以这对我很有用,但是articleID未设置@PrimaryKey注释请注意!
所以,大家试试看,并告诉我这段代码有什么挫折,如果有人可以修复代码做得更好。
0
传递正在扩展RealmObject的model类的名称,并将列名称“con_id”更改为Model类的id字段(主键)。
调用这个方法,它会给你一个id,你可以使用它来插入任何带有新id的新记录。
public static long getUniqueId(Realm realm, Class className) {
Number number = realm.where(className).max("con_id");
if (number == null) return 1;
else return (long) number + 1;
}
相关问题
- 1. 如何自动增量ID
- 2. 在Android SQLite中重置自动增量
- 3. 如何在android中生成一个自动的id(增量)?
- 4. Microsoft SQL重置ID自动增量
- 5. 如何在迁移laravel 5.3中设置不自动增量?
- 6. 如何在DynamoDB中设置自动增量字段?
- 7. 如何在MySQL中将自动增量格式设置为0001?
- 8. 如何在LINQ中设置自动增量值= true
- 9. MySQL设置自动增量“特设”
- 10. 休眠自动增量设置
- 11. .net中的自动增量ID
- 12. 在SQL Server中为自动递增ID设置MAX
- 13. 如何在apache演练中生成自动增量行ID
- 14. 如何在教义中定义自动增量id列?
- 15. 如何在javascript中使用自动增量ID?
- 16. 如何在SwipeRefreshLayout中设置增量
- 17. ASP.NET MVC中的自动增量ID
- 18. 自动增量在活动的android
- 19. phpmyadmin如何设置自动增量的2列
- 20. MySQL:如何设置自动增量字段的起始值?
- 21. 如何在flask-sqlalchemy orm模式下获得自动增量ID
- 22. 如何打印出自动增量ID在ActiveRecord的模型
- 23. 如何自动增量(IDENTITY)
- 24. GUID +自动增量ID =性能较差?
- 25. 使我自己递增的mysql id不自动增量
- 26. 自动增量无法使用ID
- 27. 使用insert_id获取自动增量ID
- 28. 自动增量分配的ID
- 29. 自动递增ID
- 30. GUID与int ID自动增量
不要问在计算器上完整的代码,而不是做一些编码工作,然后寻求建议或错误删除 –
份额你已经尝试过的代码,但没有按预期工作,如果它也提供了共享的logcat一个错误 –
我已经分享了我的代码,请看下面的解决方案 –