關(guān)于格林多
GreenDAO是一個(gè)輕量級、快速的ORM解決方案,用于將對象映射到SQLite數(shù)據(jù)庫。
GreenDao的優(yōu)勢
1.一個(gè)精簡的庫
2.性能最大化
3.內(nèi)存開銷最小化
4.易于使用的 APIs
5.對 Android 進(jìn)行高度優(yōu)化
GreenDao 3.0使用
API:
1.)實(shí)體@Entity注解
schema:告知GreenDao當(dāng)前實(shí)體屬于哪個(gè)schema
active:標(biāo)記一個(gè)實(shí)體處于活動(dòng)狀態(tài),活動(dòng)實(shí)體有更新、刪除和刷新方法
nameInDb:在數(shù)據(jù)中使用的別名,默認(rèn)使用的是實(shí)體的類名
indexes:定義索引,可以跨越多個(gè)列
createInDb:標(biāo)記創(chuàng)建數(shù)據(jù)庫表**
2.)基礎(chǔ)屬性注解
@Id :主鍵 Long型,可以通過@Id(autoincrement = true)設(shè)置自增長
@Property:設(shè)置一個(gè)非默認(rèn)關(guān)系映射所對應(yīng)的列名,默認(rèn)是的使用字段名舉例:@Property (nameInDb="name")
@NotNul:設(shè)置數(shù)據(jù)庫表當(dāng)前列不能為空
@Transient:添加次標(biāo)記之后不會(huì)生成數(shù)據(jù)庫表的列
3.)索引注解
@Index:使用@Index作為一個(gè)屬性來創(chuàng)建一個(gè)索引,通過name設(shè)置索引別名,也可以通過unique給索引添加約束
@Unique:向數(shù)據(jù)庫列添加了一個(gè)唯一的約束
4.)關(guān)系注解
@ToOne:定義與另一個(gè)實(shí)體(一個(gè)實(shí)體對象)的關(guān)系
@ToMany:定義與多個(gè)實(shí)體對象的關(guān)系
android studio 實(shí)際項(xiàng)目中使用
1,配置
在project下的gradle里面添加
在app里面添加
創(chuàng)建一個(gè)實(shí)體類
這里我只是做個(gè)demo 就只配了表面和主鍵
配好了ctrl+F9 編譯下當(dāng)前Module,greedao的插件就會(huì)在配置的路徑中生成相應(yīng)的代碼,
紅線是插件自動(dòng)生成的,2個(gè)沒有沒有畫的,是大神對版本升級時(shí)候?qū)?shù)據(jù)庫的操作。
在app入口初始化,這里我添加了版本升級的代碼。
下面這個(gè)是不用版本升級的代碼,對GreenDao的初始化
acitivty代碼
運(yùn)行結(jié)果
插入了5條數(shù)據(jù),刪除了第一條,更新了第二條。
版本升級的時(shí)候,注意當(dāng)字段改了之后,要更改數(shù)據(jù)庫版本號,若沒有的改變的話就不用改。
另外數(shù)據(jù)庫版本升級,demo中使用的是別人寫的一個(gè),采用的是把原來的數(shù)據(jù)拷貝一份然后刪除,重新創(chuàng)建數(shù)據(jù)庫,再把數(shù)據(jù)copy回去。
若是沒有對數(shù)據(jù)進(jìn)行升級相關(guān)操作而直接更改數(shù)據(jù)庫版本號的話,數(shù)據(jù)會(huì)在項(xiàng)目更新的時(shí)候丟失。
項(xiàng)目地址:
別star ,就一個(gè)demo。
收藏和點(diǎn)贊這個(gè)就行了
1.《怎么用apk修改軟件數(shù)據(jù)庫?總結(jié)很全面速看!安卓對數(shù)據(jù)庫操作的GreenDao的使用》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《怎么用apk修改軟件數(shù)據(jù)庫?總結(jié)很全面速看!安卓對數(shù)據(jù)庫操作的GreenDao的使用》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3060698.html