greenDAO開源框架學習--之使用

  • 實體模型化

生成DAO之前的設置:

//創(chuàng)建圖表對象
Schema schema=new Schema(1,"de.greenrobot.daoexample");
//給圖表對象添加實體
Entity user=schema.addEntity("User);
//一些基本設置抚吠,并且給實體添加屬性
user.addIdProperty();
user.addStringProperty("name");
user.addStringProperty("password");
user.addStringProperty("yearOfBirth");

Tips:默認的數據庫名稱以大寫使用下劃線分隔單詞。例如思犁,一個名為“創(chuàng)建日期”將成為一個數據庫列“CREATION_DATE”

  • 核心類

1.DaoMaster:它有靜態(tài)方法來創(chuàng)建表或刪除它們贯溅。它的內部類openhelper和devopenhelper是SQLiteOpenHelper實現創(chuàng)建SQLite數據庫的模式叠殷。

2.DaoSession:
可以使用一個getter方法,管理一個特定模式的所有可用的DAO對象.DaoSession還為實體提供了一些通用的持久性方法如插入、更新和刪除巍举,刷新加載溶其。

3.DAOs:數據訪問對象(DAO)和查詢實體.對每一個實體,greenDAO生成一個DAO.它有許多比DaoSession更持久化的方法策橘。例如:計數炸渡,loadAll,和insertinTx.

4.Entities:持久的對象.你不得不生成實體類丽已,并使用標準java屬性代表一個數據庫對象(如一個POJO行或JavaBean)蚌堵。


  • 創(chuàng)建數據庫(在Android工程中)
    下面的代碼示例闡釋了初始化數據庫和核心greendao類的第一步:
    helper = new DaoMaster.DevOpenHelper( this, "notes-db", null);
    db = helper.getWritableDatabase();
    daoMaster = new DaoMaster(db);
    daoSession = daoMaster.newSession();
    noteDao = daoSession.getNoteDao();

注意,數據庫連接屬于daomaster,所以多個會話指的是同一個數據庫連接吼畏。新的會話可以很快地創(chuàng)建督赤。然而,每個會話分配內存泻蚊,通常是一個會話“緩存”的實體躲舌。(這也是greenDAO快的一個原因,詳見官網)

  • QuesryBuilder 查詢
    這是官方推薦的查詢類,可以使用SQL語句性雄,也可以使用封裝好的方法没卸。
    例1: Query for all users with the first name “Joe” ordered by their last name.
    List joes = userDao.queryBuilder()Qu
    .where(Properties.FirstName.eq("Joe"))
    .orderAsc(Properties.LastName)
    .list();
    例2:查詢一個FisrstName=="Joe",并且出生日大于1970或者出生日等于1970并且月份大于10的User
    QueryBuilder qb = userDao.queryBuilder();
    qb.where(Properties.FirstName.eq("Joe"),
    qb.or(Properties.YearOfBirth.gt(1970),
    qb.and(Properties.YearOfBirth.eq(1970),
    Properties.MonthOfBirth.ge(10))));
    List youngJoes = qb.list();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末毅贮,一起剝皮案震驚了整個濱河市办悟,隨后出現的幾起案子,更是在濱河造成了極大的恐慌滩褥,老刑警劉巖病蛉,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異瑰煎,居然都是意外死亡铺然,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門酒甸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魄健,“玉大人,你說我怎么就攤上這事插勤」潦荩” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵农尖,是天一觀的道長析恋。 經常有香客問我,道長盛卡,這世上最難降的妖魔是什么助隧? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮滑沧,結果婚禮上并村,老公的妹妹穿的比我還像新娘。我一直安慰自己滓技,他們只是感情好哩牍,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殖属,像睡著了一般姐叁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天外潜,我揣著相機與錄音原环,去河邊找鬼。 笑死处窥,一個胖子當著我的面吹牛嘱吗,可吹牛的內容都是我干的。 我是一名探鬼主播滔驾,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼谒麦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哆致?” 一聲冷哼從身側響起绕德,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎摊阀,沒想到半個月后耻蛇,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡胞此,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年臣咖,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漱牵。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡夺蛇,死狀恐怖,靈堂內的尸體忽然破棺而出酣胀,到底是詐尸還是另有隱情刁赦,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布闻镶,位于F島的核電站截型,受9級特大地震影響,放射性物質發(fā)生泄漏儒溉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一发钝、第九天 我趴在偏房一處隱蔽的房頂上張望顿涣。 院中可真熱鬧,春花似錦酝豪、人聲如沸涛碑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒲障。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揉阎,已是汗流浹背庄撮。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毙籽,地道東北人洞斯。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像坑赡,于是被迫代替她去往敵國和親烙如。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內容