greenDAO的使用

来源:互联网 发布:如何看淘宝价格曲线 编辑:程序博客网 时间:2024/05/16 03:42

基本配置

在app Module中引入依赖compile 'de.greenrobot:greendao:2.0.0'

新建一个Java Module。
New Module

Java Module
在这个Module中引入代码生成依赖compile 'de.greenrobot:greendao-generator:2.0.0'

生成代码

这里需要一个Schema对象作为数据库根节点。
Schema schema = new Schema(1, "gavinhua.demo.db");构造函数需要传入两个参数,第一个是数据库版本号,第二个是生成的代码中的包名。

// 添加一张表Entity user = schema.addEntity("User");// 添加id字段,主键,自动增量user.addIdProperty().primaryKey().autoincrement();// 添加类型为String的字段,不能为空user.addStringProperty("name").notNull();user.addStringProperty("pass");user.addIntProperty("age");// 支持一对一user.addToOne(Entity target, Property fkProperty);// 支持一对多user.addToMany(Entity target, Property targetProperty);

调用生成代码的方法

// 第二个参数是代码生成存放的路径new DaoGenerator().generateAll(schema, "../Demo/app/src/main/java");

OK,db目录下多了4个类,代码成功生成。

更多API请查看官方文档

简单使用

先说一下这几个类的关系。

DaoMaster负责创建会话DaoSession,每张表对应的Dao对象实例又是从DaoSession中获取的。

// 由DaoMaster的子类可已很容易的创建数据库连接SQLiteDatabase db = new DaoMaster.DevOpenHelper(this, "db_name", null).getWritableDatabase();DaoMaster daoMaster = new DaoMaster(db);DaoSession daoSession = daoMaster.newSession();// 可以从daoSession中获取到每个DAO对象,DAO中封装了操作数据的方法。UserDao userDao = daoSession.getUserDao();
// 插入一条数据userDao.insert(user);// 插入一组数据userDao.insertInTx();// 删除数据userDao.delete();// 删除一组数据userDao.deleteInTx();// 查询所有userDao.loadAll()// 条件查询,使用where,返回一组数据userDao.queryBuilder().where(UserDao.Properties.Name.eq("admin1")).list();// 更新数据userDao.updateInTx();...

Dao中提供的方法很全,完全能给满足开发的需求。

总结

greenDAO能够满足Android对于数据操作的需求,并且在多个类似工具的比对中,它是非常优秀的。所以推荐大家使用。

0 0
原创粉丝点击