Android GreenDao使用(一)建立資料庫__資料庫

來源:互聯網
上載者:User

使用GreenDao已經好久了,不知不覺已經更新到3.x版本了。

記錄一下使用基本方法:

1.先在app目錄下的main檔案夾下建立java-gen目錄:

註:一會的java檔案指定產生在這個目錄下, 當然這不是必須的,你可以自訂目錄,這樣做的目的是,目錄結構清晰等這那的。

2.在app下build.gradle中指定識別java-gen,順便倒入greendao依賴:

compile "org.greenrobot:greendao:3.2.2"

sourceSets {        main {            java.srcDirs = ['src/main/java', 'src/main/java-gen']        }    }
3.建立java工程:


然後在java工程中倒入依賴:

compile 'org.greenrobot:greendao-generator:3.2.2'


4.在java工程中建立一個java類:GreenDaoGenerator,其中我建立了一個表後運行這個java類,

greendao會根據我們的設定和表建立的欄位,直接將需要的類產生到剛才我們指定的目錄下:

package com.example;import org.greenrobot.greendao.generator.DaoGenerator;import org.greenrobot.greendao.generator.Entity;import org.greenrobot.greendao.generator.Schema;/** * java工程產生資料庫表 */public class GreenDaoGenerator {    public static void main(String[] args){        // 產生資料庫實體類xxentity 對應的是資料庫的表        Schema schema = new Schema(1, "com.school.entity");        addTestGroup(schema);        schema.setDefaultJavaPackageDao("com.school.dao");        try {            new DaoGenerator().generateAll(schema, "/Users/katsurayasubumi/StudioProjects/Reliable_TestInput/app/src/main/java-gen");        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * 測試專案分組表     */    private static void addTestGroup(Schema schema){        Entity entity = schema.addEntity("TestGroup");        entity.addIdProperty();        entity.addIntProperty("group");        entity.addStringProperty("name");    }}
註:1.其中entity.addIdProperty();是給這張表建立一個主鍵,自增長的id。你也可以換成你實際需求中的唯一標識的”id“。

2.main函數中Schema在執行個體化的時候,第一個參數為資料庫版本號碼,第二個參數是產生對應表實體類的目錄。下面setDefal..是指定greendao產生的類的目錄。


上圖就是運行java工程之後,對應目錄下產生了對應的檔案。


5.接下來再來封裝一下資料庫操作類。

public class DaoManager {    private static final String TAG = DaoManager.class.getSimpleName();    // 資料庫名稱    private static final String DB_NAME = "reliable.sqlite";    // 多線程訪問    private volatile static DaoManager manager;    private static DaoMaster.DevOpenHelper helper;    private static DaoMaster daoMaster;    private static DaoSession daoSession;    private Context context;    /**     * 使用單例模式獲得操作資料庫的對象     */    public static DaoManager getInstance(){        DaoManager instance = null;        if (manager == null){            synchronized (DaoManager.class){                if (instance == null){                    instance = new DaoManager();                    manager = instance;                }            }        }        return manager;    }    public void init(Context context){        this.context = context;    }    /**     * 判斷是否存在資料庫     * 如果沒有則建立資料庫     */    public DaoMaster getDaoMaster(){        if (daoMaster == null){//            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, DB_NAME, null);            MyOpenHelper myOpenHelper = new MyOpenHelper(context, DB_NAME, null);            daoMaster = new DaoMaster(myOpenHelper.getWritableDatabase());        }        return daoMaster;    }    /**     * 完成對資料庫的添加刪除修改查詢等的操作     * 註:僅僅是一個介面     */    public DaoSession getDaoSession(){        if (daoSession == null){            if (daoMaster == null){                daoMaster = getDaoMaster();            }            daoSession = daoMaster.newSession();        }        return daoSession;    }    /**     * 開啟輸出日誌的操作     * 註:預設是關閉的     */    public void setDebug(){        QueryBuilder.LOG_SQL = true;        QueryBuilder.LOG_VALUES = true;    }    /**     * 關閉所有的操作     * 註:資料庫開啟之後,使用完畢必須要關閉     */    public void closeConnection(){        closeHelper();        closeDaoSession();    }    public void closeHelper(){        if (helper != null){            helper.close();            helper = null;        }    }    public void closeDaoSession(){        if (daoSession != null){            daoSession.clear();            daoSession = null;        }    }}



6.最後就是對錶具體的操作了,下一篇來記錄:













相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.