你知道如何在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一個錯誤 –
我已經分享了我的代碼,請看下面的解決方案 –