1. 程式人生 > >GreenDao3.0的簡單使用

GreenDao3.0的簡單使用

首先配置grendao

1、匯入相應的包

  1. compile'org.greenrobot:greendao:3.0.1'
  2. compile'org.greenrobot:greendao-generator:3.0.0'

2、配置專案的Gradle

    1.  dependencies {  
    2.         classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
    3.     }

3、配置app的Gradle

  1. apply plugin: 'org.greenrobot.greendao'
  2.   //android裡新增下面程式碼
  3. greendao {  
  4.     schemaVersion 1
  5.     daoPackage 'com.example.anonymous.greendao.gen'
      //一般為app包名+生成檔案的資料夾名
  6.     targetGenDir 'src/main/java'  //生成檔案路徑
  7. // schemaVersion   指定資料庫schema版本號,遷移等操作會用到
    // daoPackage   通過gradle外掛生成的資料庫相關檔案,這裡我設定的檔案路徑是com.example.anonymous.greendao
    // targetGenDir  這就是我們上面說到的自定義生成資料庫檔案的目錄了,可以將生成的檔案放到我們的java目錄中,而不  // 是build中,這樣就不用額外的設定資源目錄了

3.編寫實體類(對應的是資料庫的每張表)
  1. @Entity
  2. publicclass
     User {  
  3.     @Id
  4.     private Long id;  
  5.     private String name;  
  6. }  
@Entity:將我們的java普通類變為一個能夠被greenDAO識別的資料庫型別的實體類
@Id:通過這個註解標記的欄位必須是Long型別的,這個欄位在資料庫中表示它就是主鍵,並且它預設就是自增的

就這麼簡單含有兩個欄位的實體類

然後點選這個按鈕

builder完之後會有兩個地方發生了變化


這是GreenDao自動為你生成的,路徑就是你在gradle中配置的路徑

現在只有一個User表,如果再新增一個Age實體類,你在點選Make Project按鈕,他還會把AgeDao自動生成出來

在增、刪、改、查之前第一步做的就是需要對資料庫進行初始化,不可能就這樣直接對實體類操作,這樣不太現實的,否則為什麼GreenDao會自動生成這麼多程式碼呢?

  1. DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(), "my-db");    
  2. DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());    
  3. DaoSession daoSession = daoMaster.newSession();    
  4. UserDao userDao = daoSession.getUserDao();    
my-db是資料庫的名字,自己隨便寫就行。

通過GreenDao生成的程式碼,我們可以獲取到實體類的例項,也就是資料庫表的例項,這樣我們才能操作資料庫

4、增、刪、改、查

1、增加

  1. User user1 = new User(,"zhangsan");  
  2. userDao.insert(user1); 

2、刪除

  1. User findUser = userDao.queryBuilder().where(UserDao.Properties.Name.eq("zhangsan")).build().unique();    
  2. if(findUser != null){    
  3.     userDao.deleteByKey(findUser.getId());    

3、修改

  1. User findUser = userDao.queryBuilder().where(UserDao.Properties.Name.eq("zhangsan")).build().unique();    
  2. if(findUser != null) {    
  3.     findUser.setName("lisi");    
  4.     userDao.update(findUser);    
  5.     Toast.makeText(MyApplication.getContext(), "修改成功", Toast.LENGTH_SHORT).show();    
  6. else {    
  7.     Toast.makeText(MyApplication.getContext(), "使用者不存在", Toast.LENGTH_SHORT).show();    
把zhangsan改成lisi

4、查詢

  1. List<User> userList = userDao.queryBuilder()    
  2.        .where(UserDao.Properties.Id.notEq(1))   
  3.        .limit(5)    
  4.        .build().list();

查詢語句是資料庫操作最多的,語句也比較複雜,具體的語句請去看官網

簡單封裝

其實這樣寫程式碼,作為程式設計師並不能滿足,最起碼的重用還是需要的,所以簡單的封裝一下吧

我們需要新增幾個類來負責程式碼的重用工作,先看一下整體的工程結構:


1、MyApplication:返回Context物件

2、DaoManager:初始化資料庫,獲取相應的操作物件

3、EntityManager:對資料庫表的初始化,獲取實體類的操作物件

  1. publicclass MyApplication extends Application {  
  2.     privatestatic Context mContext;  
  3.     @Override
  4.     publicvoid onCreate() {  
  5.         super.onCreate();  
  6.         mContext = getApplicationContext();  
  7.     }  
  8.     publicstatic Context getContext() {  
  9.         return mContext;  
  10.     }  
  11. }  
  1. /** 
  2.  *  greenDao管理類 
  3.  */
  4. publicclass DaoManager {  
  5.     privatestatic DaoManager mInstance;  
  6.     private DaoMaster mDaoMaster;  
  7.     private DaoSession mDaoSession;  
  8.     private DaoManager() {  
  9.         DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(), "my-db");  
  10.         DaoMaster mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());  
  11.         mDaoSession = mDaoMaster.newSession();  
  12.     }  
  13.     public DaoMaster getMaster() {  
  14.         return mDaoMaster;  
  15.     }  
  16.     public DaoSession getSession() {  
  17.         return mDaoSession;  
  18.     }  
  19.     publicstatic DaoManager getInstance() {  
  20.         if (mInstance == null) {  
  21.             mInstance = new DaoManager();  
  22.         }  
  23.         return mInstance;  
  24.     }  
  25. }  
  1. publicclass EntityManager {  
  2.     privatestatic EntityManager entityManager;  
  3.     public UserDao userDao;  
  4.     /** 
  5.      * 建立User表例項 
  6.      * 
  7.      * @return 
  8.      */
  9.     public UserDao getUserDao(){  
  10.         userDao = DaoManager.getInstance().getSession().getUserDao();  
  11.         return userDao;  
  12.     }  
  13.     /** 
  14.      * 建立單例 
  15.      * 
  16.      * @return 
  17.      */
  18.     publicstatic EntityManager getInstance() {  
  19.         if (entityManager == null) {  
  20.             entityManager = new EntityManager();  
  21.         }  
  22.         return entityManager;  
  23.     }  

相關推薦

GreenDao3.0簡單使用

首先配置grendao1、匯入相應的包compile'org.greenrobot:greendao:3.0.1'compile'org.greenrobot:greendao-generator:3.0.0'2、配置專案的Gradle dependencies {     

Android GreenDAO3.0——介紹

load .cn ast 刪除數據 col base objects 應用 wid 引言 最近,學東西比較零散,各種知識混雜,於是記下學習記錄,免得又忘了。 官方網址:http://greenrobot.org/greendao/documentation/introduc

android greendao3.0 多表關聯關系講解(轉)

簡書 前言 uil 總結 表關聯 外鍵關聯 講解 article 靈活 轉自:http://www.jianshu.com/p/dbec25bd575f 前言 之前用過數據庫框架:realm、kjdb,今天準備實踐學習一下greendao 3.0。greendao

Rancher 2.0 簡單使用 重要部分截取

ksum get nta uwa port 會有 man pom 8.0 學習地址 : https://rancher.com/docs/rancher/v2.x/en/quick-start-guide/ Install Rancher       docker

Web2.0簡單介紹和軟件開發結構淺談

Web2.0簡單介紹和軟件開發結構淺談 1、Web2.0指的是利用Web的平臺,由用戶主導而生成內容的互聯網產品模式,為了區別由網站雇員主導生成內容的傳統網站而定義為Web2.0基於Web2.0這些特點所產生的具有代表性的服務如下:博客、內容源、WiKi、參與評論與評分的Digg機制、美味書簽、社會化網絡、

map2.0簡單應用

tex return 失敗 tlab gin win 添加 var PE <html> <head> <meta content="yes" name="apple-mobile-web-app-capable">

個人對OAUTH1.0簡單理解

arch 開放 html 第三方 proc details ref 分享 RoCE 我畫了一個簡單的圖來了解一下OAUTH1.0請求的交互過程,附圖如下:簡單解釋一下:OAuth1.0是基於http實現,為了交互的安全性設計上看起來會稍微復雜,OAuth1.0獲得的acce

Spring基礎:快速入門spring boot(7):spring boot 2.0簡單介紹

從這篇文章開始以spring boot2為主要版本進行使用介紹。 Spring boot 2特性 spring boot2在如下的部分有所變化和增強,相關特性在後續逐步展開。 特性增強 基礎元件升級: JDK1.8+ tomcat 8+ Thymeleaf 3

關於GreenDao3.0的使用

首先我們要考慮,為什麼要使用GreenDao 根據這個圖,我們可以簡單的判斷下自己到底需要什麼,如果想知道更多的細節,請查詢: http://greenrobot.org/android/android-orm-performance-2016

hdfs2.9.0簡單開發

1、maven工程的構建,hadoop用的版本是2.9.0。jdk的版本為1.8.0_131 <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs --> <dependen

Shader2.0-簡單的邊框的實現

Shader "Hidden/TestStruct" { Properties { _MainTex ("Texture", 2D) = "white" {} _Width("Width",float)=1.2 _Color("Color",Color)=(1,0,0,1) }

Greenplum5.9.0簡單使用

一、環境準備 GP叢集環境情況如下圖所示,master實現容錯,配置standby master。兩個節點為segment節點,其中每個幾點配置兩個segment,未配置mirror segment。 二、使用案例 2.1登入資料庫 登入Greenplum資料

Android 深入GreenDao3.0

大家好,在上一篇文章中,我主要介紹了GreenDao3.0的最基本的用法,當然也是最常用的用法,如果你的專案裡沒有特別複雜的多表關聯需求的話,我相信那篇文章的知識點已經足夠使用了。但是,如果你是一個求知慾特別強的人或者手上有要在本地建立複雜的資料庫需求的話,我相信認真讀完本篇文章,你一定

從零學習RxJava2.0-簡單入門

前言 函數語言程式設計:函數語言程式設計是種程式設計方式,它將電腦運算視為函式的計算。函式程式語言最重要的基礎是λ演算(lambda calculus),而且λ演算的函式可以接受函式當作輸入(引數)

Android GreenDao3.0入門學習

1. 什麼是greenDao 弄明白greenDao之前我們應該先了解什麼是ORM(Object Relation Mapping 即 物件關係對映),說白了就是將面向物件程式語言裡的物件與資料庫關聯起來的一種技術,而greenDao就是實現這種技術之一,所以說greenDao其實就是一

GreenDao3.0入門

1. 什麼是greenDao 弄明白greenDao之前我們應該先了解什麼是ORM(Object Relation Mapping 即 物件關係對映),說白了就是將面向物件程式語言裡的物件與資料庫關聯起來的一種技術,而greenDao就是實現這種技術之一,所以說greenDao其實就是一種將java ob

flume-1.7.0 簡單使用

在上一篇中,我們安裝了 flume-ng,這一篇我們就來簡單使用一下。 官網上是這麼介紹的,我們需要指定一個配置檔案,需要定義一個 agent 的名稱,然後我們就可以使用 flume-ng 命令來啟動了。 1 編寫配置檔案 我們先拿官網上的例子來跑

greendao3.0以上使用步驟(一):基礎使用

本文介紹了greendao的基礎入門使用:其中包括資料庫的增刪改查,基本使用功能,簡單方便,易懂。 優勢: 1:效能最大化 2:記憶體開銷最小 3:API 簡單好用 4:對Android 高度優化 5:2.2版本以上還支援加密資料庫 6:

greendao3.0以上使用步驟(三):資料庫加密

引入資料庫 1、在專案的build.gradle中加入這些配置 // Top-level build file where you can add configuration options common to all sub-projects/

greendao3.0以上使用步驟(二):資料庫到底該怎麼升級

這一篇看看資料庫到底該怎麼升級呢?看我升級後的效果 沒有升級前的頁面顯示 沒有升級前的資料庫 升級後的頁面顯示 升級後的資料庫 看增加了一個NUM欄位 。 最新有小夥伴遇到資料庫升級問題了,說網上都是2.0版本的升級方法,