greenDAO开源框架学习--之使用

  • 实体模型化

生成DAO之前的设置:

//创建图表对象
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:默认的数据库名称以大写使用下划线分隔单词。例如,一个名为“创建日期”将成为一个数据库列“CREATION_DATE”

  • 核心类

1.DaoMaster:它有静态方法来创建表或删除它们。它的内部类openhelper和devopenhelper是SQLiteOpenHelper实现创建SQLite数据库的模式。

2.DaoSession:
可以使用一个getter方法,管理一个特定模式的所有可用的DAO对象.DaoSession还为实体提供了一些通用的持久性方法如插入、更新和删除,刷新加载。

3.DAOs:数据访问对象(DAO)和查询实体.对每一个实体,greenDAO生成一个DAO.它有许多比DaoSession更持久化的方法。例如:计数,loadAll,和insertinTx.

4.Entities:持久的对象.你不得不生成实体类,并使用标准java属性代表一个数据库对象(如一个POJO行或JavaBean)。


  • 创建数据库(在Android工程中)
    下面的代码示例阐释了初始化数据库和核心greendao类的第一步:
    helper = new DaoMaster.DevOpenHelper( this, "notes-db", null);
    db = helper.getWritableDatabase();
    daoMaster = new DaoMaster(db);
    daoSession = daoMaster.newSession();
    noteDao = daoSession.getNoteDao();

注意,数据库连接属于daomaster,所以多个会话指的是同一个数据库连接。新的会话可以很快地创建。然而,每个会话分配内存,通常是一个会话“缓存”的实体。(这也是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();

你可能感兴趣的:(greenDAO开源框架学习--之使用)