日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

使用ORM数据库:greenDao

發布時間:2025/3/21 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用ORM数据库:greenDao 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 添加依賴:
// 在總的 build.gradle 中
buildscript {
????repositories {
????????jcenter()
????????mavenCentral() // 加入倉庫
????}
????dependencies {
????????classpath 'com.android.tools.build:gradle:2.3.1'
????????classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' // 添加插件
????}
}
// 在應用程序的 build.grdle 中
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' //添加應用插件
dependencies {
????compile 'org.greenrobot:greendao:3.0.1'
????compile'org.greenrobot:greendao-generator:3.0.0'
}

//應用程序的 build.grdle 的 android 中

android{

????...

????greendao {
????????schemaVersion 1//數據庫版本號
????????daoPackage 'com.xxx.xxx.greendao'//設置 DaoMaster、DaoSession、Dao 包名
????????targetGenDir 'src/main/java'//設置 DaoMaster、DaoSession、Dao 目錄
????????//targetGenDirTest:設置生成單元測試目錄
????????//generateTests:設置自動生成單元測試用例

????}

}

2. 使用樣例:
實體類 User
@Entity//標示是一個greenDao需要生成的類
public class User {
????@Id(autoincrement = true)//標示是自增長的id,必須是Long型
????private Long id;
????private String name;

????private int age;

????@Transient//表示不會存儲此字段

? ? private boolean isCheck;

}
3.? 相關注解說明 :
3.1. 實體@Entity 注解
schema:告知 GreenDao 當前實體屬于哪個 schema
active:標記一個實體處于活躍狀態,活動實體有更新、刪除和刷新方法
nameInDb:在數據庫中使用的別名,默認使用的是實體的類名
indexes:定義索引,可以跨越多個列
createInDb:標記創建數據庫表
3.2. 基礎屬性注解
@Id:主鍵 Long 型,可以通過@Id(autoincrement = true)設置自增長
@Property:設置一個非默認關系映射所對應的列名,默認是使用字段名,例如:@Property(nameInDb = “name”)
@NotNull:設置數據庫表當前列不能為空
@Transient:添加此標記后不會生成數據庫表的列
3.3. 索引注解
@Index:使用@Index 作為一個屬性來創建一個索引,通過 name 設置索引別名,也可以通過 unique 給索引添加約束
@Unique:向數據庫添加了一個唯一的約束
3.4. 關系注解:
@ToOne:定義與另一個實體(一個實體對象)的關系
@ToMany:定義與多個實體對象的關系
4. 當編寫好實體類并添加了注解之后,點擊Make Project或者Make Module * ,就會在自己設定的目錄下看到生成的類文件,并且
會自動生成各個屬性的 get,set 方法
5. 初始化(一般在 Application 中)
DaoMaster.DevOpenHelper openHelper=new DaoMaster.DevOpenHelper(上下文,數據庫名字);//也有三個參數的構造,第三個參
數是游標工廠
Database db=openHelper.getWritableDb();
DaoMaster daoMaster=new DaoMaster(db);
ormDao=daoMaster.newSession();//這個 ormDao 就是要用于操作的
6. 增刪改查的操作(要 try 一下,如果有異常表示操作失敗)
6.1. 增:ormDao.get 實體類名 Dao().insert(對象);//注意,Long 型 id 如果傳入 null,則會自增長
6.2. 刪: deleteBykey(主鍵) :根據主鍵刪除一條記錄。
delete(對象) :根據實體類刪除一條記錄,一般結合查詢方法,查詢出一條記錄之后刪除。
deleteAll(): 刪除所有記錄。
6.3. 改:update(對象);//應該是根據主鍵改的
6.4. 查: loadAll():查詢所有記錄
load(Long key):根據主鍵查詢一條記錄
queryBuilder().list():返回:List 列表
queryBuilder().where(UserDao.Properties.Name.eq(“”)).list():返回:List 列表
queryRaw(String where,String selectionArg):返回:List 列表
6.5. 高級查詢:
.orderAsc(類.字段)//按照字段進行正序排序,應該有 desc,倒序
.or()//條件或者,可以加多個條件,中間用逗號隔開
.and()//條件并且,可以加多個條件,中間用逗號隔開
queryBuilder() .offset(0* 20).limit(20).list();//分頁查詢,現在是查詢第 1 頁,每頁 20 條數據

總結

以上是生活随笔為你收集整理的使用ORM数据库:greenDao的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。