GreenDao開源ORM架構淺析,greendao開源orm

來源:互聯網
上載者:User

GreenDao開源ORM架構淺析,greendao開源orm

Android程式開發中,避免不了要用到資料庫,我們都知道android提供了內建的Sqlite,即調用SQLiteOpenHelper的方法,來操作資料庫,但是使用過程較為繁瑣,從建表到對錶中資料的正刪改查操作,需要大量的代碼來建立表,和完成這些操作。

GreenDao居然是ORM架構,它跟hibernate是很像的,就是當你配置了一些參數資訊之後,可以由架構來幫你產生對應的實體類,還有產生對應的操作實體類的代碼(自動建表和基本的增刪改查)。

    優點: 1.最大效能(最快的Android ORM) 

          2.便於使用API

           3.高度最佳化

            4.最小記憶體消耗




首先我們先看下怎麼構建GreenDao的環境

一、Android Studio 中配置GreenDao依賴(Eclipse中直接下載jar包)

在項目中build.gradle中加入下面紅色字型部分:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'de.greenrobot:greendao:1.3.7'
    compile 'de.greenrobot:greendao-generator:1.3.1'

}


Eclipse的話直接下載下面三個包匯入libs



二、GreenDao使用詳解


GreenDao流程圖:



引入了這個流程圖,那麼我們開始淺析關於這幅圖。

居然GreenDao是用來幫我們簡化建表、增刪改查操作的,而且從上面的圖中我們可以知道,原來不用GreenDao的時候,我們需要自己去寫XyzEntity(實體類bean), 寫完實體類之後,我們會寫操作對應實體類的XyzDao

另外GreenDao引入了兩個類,

DaoSession: 操作具體DAO對象的各種getter方法。

DaoMaster: 它儲存了我們的SQLiteDataBase對象及操作DAO類。還有提供一些建立和刪除Table的靜態方法,它的內部類OpenHelper和DevOpenHelper實現了SQLiteOpenHelper並建立資料庫的架構。


那麼現在用了GreenDao我們需要做些什麼,而不需要做什麼呢?


1.我們需要在Android項目中建立一個Java類(帶main函數)

2.匯入greenDao-generator.jar和freemarker.jar兩個包。

3.建立Schema,指定資料庫的版本號碼、Java package參數

Schema schema = new Schema(1000,"com.example.greendao.note");

4.建立Entity,並添加到Schema對象中(Entity:相當於資料庫中的表, 所以又可能有ToOne, ToMany的關係),調用該函數 傳入

第三步產生的Schema對象。

private static void addNote(Schema schema){
        //產生一個Note Bean
        Entity note = schema.addEntity("Note");
        note.addIdProperty();
        note.addStringProperty("text").notNull();
        note.addStringProperty("comment");
        note.addDateProperty("date");
    }

5.Entity添加到Schema對象之後,調用DaoGenerator,進行自動產生上面所述的四個類

new DaoGenerator().generateAll(schema,"./app/src/main/java");//指定要產生的Schema,還有類產生之後存放的路徑


到此為止,就基本上已經完成了一個最簡單的對象實體關聯映射了。

然後我們就要開始使用這些類了,根據我們上面的介紹,我們知道我們需要先從DaoMaster的內部類DevOpenHelper中得到我們想要的SQLiteDatabase對象,然後我們需要通過這個對象建立出對應的DaoMaster類對象daoMaster,有了這個daoMaster之後,我們就可以執行個體化一個新的會話Session, 通過這個Session再來得到相應的實體Dao, 最後操作這個Dao中的函數,就可以對資料庫中相應的表進行增刪改查了。

                DaoMaster.DevOpenHelper devOpenHelper =  new DaoMaster.DevOpenHelper(getApplicationContext(),"notedb",null);                db = devOpenHelper.getWritableDatabase();                master = new DaoMaster(db);                DaoSession session = master.newSession();                CustomerDao customerDao = session.getCustomerDao();                customerDao.insert(new Customer());

此文僅拋磚引玉,還有另外的一些GreenDao更加具體的使用,希望大家自己去看官方的文檔學習。

1.greenDAO官網:http://greendao-orm.com/

2.項目:https://github.com/greenrobot/greenDAO




java開源架構幹什用的

java的開源架構非常多,不知道你具體指的哪些,有mvc架構例如struts、jsf等,有容器架構spring等,有orm映射架構hibernate等等,每個架構作用不同,你具體指那個。
 
我急需要份ASPNET 開源ORM產生器,最近做項目需要ORM模式,所以各位幫幫忙 ASPNET ORM 待

已發送,主題:ASP.NET 開源ORM產生器
請查收!
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.