android GreenDao資料庫架構學習(1)

來源:互聯網
上載者:User

標籤:android

一.GreenDao概述:

    greenDAO 是一個可以協助 Android 開發人員快速將 Java 對象映射到 SQLite 資料庫表單中的 ORM 解決方案。greenDAO的特點運行效率最高、記憶體消耗最少,官網:http://greendao-orm.com/。。。github:https://github.com/greenrobot/greenDAO。

     

1、  DaoCore:greenDAO的核心庫。
2、  DaoExample:greenDAO使用範例項目。
3、  DaoExampleGenerator:greenDAO使用範例的實體類及DAO組件的產生器項目。
4、  DaoGenerator:greenDAO的DAO組件產生器項目。
5、  DaoTest:greenDAO的測試專案。
6、  PerformanceTestOrmLite:ormlite架構效能測試項目

二.產生GreenDao架構:

在使用之前要下載greendao-generator.jar和freemarker.jar兩個包,freemarker需要這個來產生java檔案,來看具體怎麼使用:

(1).首先產生一個java項目(不是android項目),然後將上面greendao-generator.jar和freemarker.jar匯入java項目。


產生一個類,名字隨便取:我得命名DaoGeneratorTest:

<span style="font-size:18px;">public class DaoGeneratorTest {public static void main(String[] args) throws Exception {  //第一個參數是資料庫版本號碼,第二個是自動產生包的路徑        Schema schema = new Schema(1, "de.greenrobot.daoexample");                  addNote(schema);         //產生路徑,就是在什麼目錄下產生這個檔案,我的路徑是在一個建立android項目src-gen目錄下        new DaoGenerator().generateAll(schema, "../AndroidTestGreenDao/src-gen");      }      private static void addNote(Schema schema) {    //Entity是一個實體,實體類名為Note        Entity note = schema.addEntity("Note");          //主鍵,設定自增長可在後面家.autoincrement()        note.addIdProperty();          //實體類中的屬性(也就是表中的欄位),不可為空,其他設定看下方法名就能知道什麼意思了        note.addStringProperty("text").notNull();          note.addStringProperty("comment");          note.addDateProperty("date");      }  }</span>

而且要注意:src-gen要先建立好,才能成功。
產生成功:



Schema類:可以看成一個存放實體的容器。

Entity類:可用於將實體類映射到對應的表。

DaoGenerator:實體類和DAO組件的產生器,generateAll根據schema和目錄參數,首先組建檔案存放目錄,並從schema中取出所有entity,根據freemaker模板產生對應的實體了和DAO組件。


三.使用GreenDao架構:

建立一個android項目,我得android項目名為(我上面java指定的路徑就是這個項目下):AndroidTestGreenDao


這裡greendao-1.3.0-beta-1.jar在github下載的DaoExample目錄下libs下拿出來的。

建立資料庫:

public class MainActivity extends Activity {private SQLiteDatabase db;private DaoMaster master;private DaoSession session;private NoteDao noteDao;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);        //建立資料庫名為notes-dbDevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db",null);db = helper.getWritableDatabase();master = new DaoMaster(db);session = master.newSession();noteDao = session.getNoteDao();                //添加一條資料Note note = new Note(10L, "1", "1", new Date());noteDao.insert(note);}}


Note:實體物件,映射到表NOTE。

NoteDAO:通過代碼可知此類提供了產生建表、和刪表的方法,並類繼承了AbstractDao(greenDAO核心類之一,封裝了動作表中資料的各種方法)。

DaoMaster:繼承自AbstractDaoMaster,用於建立資料庫,並管理資料庫串連。

DaoSession:繼承自AbstractDaoSession,所有DAO對象的入口,通過此類可獲得實體了的DAO組件。





android GreenDao資料庫架構學習(1)

聯繫我們

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