你知道如何在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. 如何在zf2中doctrine2 odm中設置自動增量ID?
- 2. 如何自動增量ID
- 3. 將自動增量設置爲android
- 4. PHP - 如何找到未設置的自動增量數組ID
- 5. 如何在android中生成一個自動的id(增量)?
- 6. 在Android SQLite中重置自動增量
- 7. 如何在cassandra中像SQL一樣設置自動增量ID(整數)?
- 8. Microsoft SQL重置ID自動增量
- 9. 我如何重置sqlite ios中的自動增量ID
- 10. Hadoop:如何創建自動增量ID
- 11. 如何控制自動增量ID?
- 12. 如何在DynamoDB中設置自動增量字段?
- 13. 如何在MongoDB中使用自動增量設置主鍵?
- 14. 如何在LINQ中設置自動增量值= true
- 15. 如何在MySQL中將自動增量格式設置爲0001?
- 16. 如何在sqlite中設置自動增量字段
- 17. 如何在遷移laravel 5.3中設置不自動增量?
- 18. 如何在Android中使用SqLite重置自動增量?
- 19. Id自動增量varchar不增量
- 20. MySQL設置自動增量「特設」
- 21. 自動增量ID練習
- 22. 在java中生成自動增量ID
- 23. MongoDB自動增量ID
- 24. 二級ID自動增量
- 25. 自動增量ID C#
- 26. 休眠自動增量設置
- 27. .net中的自動增量ID
- 28. 設置自動增量到主鍵
- 29. 在SQL Server中爲自動遞增ID設置MAX
- 30. 如何在mysql表中獲得下一個自動增量ID?
不要問在計算器上完整的代碼,而不是做一些編碼工作,然後尋求建議或錯誤刪除 –
份額你已經嘗試過的代碼,但沒有按預期工作,如果它也提供了共享的logcat一個錯誤 –
我已經分享了我的代碼,請看下面的解決方案 –