Android greenDao的簡單配置和使用

來源:互聯網
上載者:User

標籤:

      最近自學做東西的時候用到了一個收藏的功能,然後我想把東西存放到SQLite當中,然而自己傳值的時候都是用到的實體類,所以存起來也比較麻煩,所以從網上找到一個greenDao的開源架構非常火,不僅效率高,而且記憶體也佔用的小,非常方便。

      這裡我就簡單介紹一下如何配置,至於其他的增、刪、改、查了,網上都很多,需要用到的小夥伴們自己去查吧!!

      首先我們得明白,greenDao是一個Java代碼模版的快速產生器,裡面封裝好了我們實體類的各種操作。所以

      1、我們要用eclipse或者Myeclipse建一個Java工程,我們需要在我們的工程下建立一個lib目錄用於放我們的兩個包(沒有的小夥伴可以去網上下載)

      

   2、右鍵我們的工程,在彈出的菜單中選擇Properties,將我們的兩個jar包 加入到我們的工程中

  

   3、操作完成後,我們就可以編寫代碼了,建立一個類,在裡面寫下如下代碼

     

package com.fanlei.greenDao;import java.io.IOException;import de.greenrobot.daogenerator.DaoGenerator;import de.greenrobot.daogenerator.Entity;import de.greenrobot.daogenerator.Schema;public class ExampleDaoGenerator {    public static void main(String[] args) throws IOException, Exception {                Schema schema = new Schema(1, "de.greenrobot.daoexample");                    addNote(schema);            new DaoGenerator().generateAll(schema, "E:\\DaoExample\\src-gen");            }        private static void addNote(Schema schema) {                  Entity news = schema.addEntity("News");        news.addStringProperty("author");        news.addStringProperty("content");        news.addStringProperty("id");        news.addStringProperty("img");        news.addStringProperty("pagetag");        news.addStringProperty("time");        news.addStringProperty("title");    }  }

 首先

    Schema schema = new Schema(1, "de.greenrobot.daoexample");  是必須要有的,這個視需要建立實體類要用到的,

   兩個參數   第一個是一個 版本,也就是說我們的SQLite資料庫版本,後期如果需要資料庫升級,就需要這個參數.

                 第二個是一個 路徑,也就是你運行完這段代碼後,產生的 .java 檔案放在的地方.

   方法addNote() 是添加實體類用的,你希望產生的實體類裡面都有什麼屬性,這個需要自己去加入,屬性的類型也很全面

                Entity news = schema.addEntity("News");  

  會產生一個 News.java檔案和NewsDao.java檔案,NewsDao.java檔案裡面封裝好了對資料庫的操作

                new DaoGenerator().generateAll(schema, "E:\\DaoExample\\src-gen");

  第二個參數是你希望產生的檔案存放在哪裡.這個路徑需要使用者事先去建好,否則會報異常.

  最後產生的檔案除了兩個必要的.java檔案,還有就是 你的實體類和實體類的Dao.

  

  4、最好將這幾個.java檔案考到你的android工程裡面就可以使用了,android裡面也需要一個jar包去支援,別忘了匯入進去。(沒有得網上可以下載)

 

5、為了防止我們總是去建立session,官方推薦我們將session的產生放到application中,然後我們可以用get方法去獲得

 1 public class MyApplication extends Application { 2  3     private DaoMaster.DevOpenHelper helper; 4     private SQLiteDatabase db; 5     private DaoMaster daoMaster; 6     private DaoSession daoSession; 7  8     @Override 9     public void onCreate() {10 11 12         helper = new DaoMaster.DevOpenHelper(this,"News_info-db",null);13         db = helper.getWritableDatabase();14         daoMaster = new DaoMaster(db);15         daoSession = daoMaster.newSession();16  }17 }

 

    6、插入操作也很簡單

      

private News news;    private NewsDao newsDao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_news_info);        getSupportActionBar().hide();        newsDao = MyApplication.getMyApplocation().getDaoSession().getNewsDao();  //拿到這麼個工具dao   newsDao.insert(news);   //插入到資料庫    }

 若是第一次插入,則會建立一個表 表名就是類名,欄位名就是屬性名稱,這個表就是專門放News實體類的

 

7、其他動作請自行搜尋,或者看官方文檔

Android greenDao的簡單配置和使用

聯繫我們

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