Android sqlite設(shè)置主鍵自增長的方法教程
今天在APP中增加一個添加項目的功能,項目的主鍵為整數(shù),要讓它自增長。
既然要自增長,那么在代碼里面就不用給id字段賦值。但是調(diào)試的時候發(fā)現(xiàn)不行,提示主鍵重復(fù),觀察了輸出,不賦值的話,id默認(rèn)為0,于是每次都為0,就重復(fù)了:
Source source = new Source(); source.setName(dict.getName());//id沒有賦值 SourceManager.get(this).insert(source);
ContentValues cv = new ContentValues(); System.out.println("id: " + source.getId());//輸出,id每次都是0 cv.put(COLUMN_ID, source.getId()); cv.put(COLUMN_NAME, source.getName());
id沒有賦值,為什么是0呢?那就是Java的默認(rèn)int為0了,所以,在對象層面,就算不賦值,id也默認(rèn)是0。
因此,要從數(shù)據(jù)庫操作層面來解決:
//cv.put(COLUMN_ID, source.getId()); v.put(COLUMN_NAME, source.getName());
ContentValue賦值時取消對id字段的賦值即可。
問題解決,可以自增長了。
總結(jié)
Android中,讓sqlite主鍵自增長的條件如下:
1. 數(shù)據(jù)庫中,設(shè)置字段為INTEGER,Primary,Autoincrement。
2. Java代碼中,ContentValue賦值時忽略主鍵字段。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
android使用TextView實現(xiàn)跑馬燈效果
這篇文章主要為大家詳細(xì)介紹了android使用TextView實現(xiàn)跑馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05Android 中使用 AsyncTask 異步讀取網(wǎng)絡(luò)圖片
這篇文章主要介紹了Android 中使用 AsyncTask 異步讀取網(wǎng)絡(luò)圖片的相關(guān)資料,需要的朋友可以參考下2016-02-02android事件分發(fā)機(jī)制的實現(xiàn)原理
本篇文章主要介紹了android事件分發(fā)機(jī)制的實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Android開發(fā)筆記之:一分鐘學(xué)會使用Logcat調(diào)試程序的詳解
本篇文章是對Android中Logcat調(diào)試程序的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android 監(jiān)聽手機(jī)GPS打開狀態(tài)實現(xiàn)代碼
這篇文章主要介紹了Android 監(jiān)聽手機(jī)GPS打開狀態(tài)實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05Android冷啟動實現(xiàn)app秒開的實現(xiàn)代碼
本篇文章主要介紹了Android冷啟動實現(xiàn)app秒開的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08