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產生器
請查收!