学习笔记-----greenDAO3

  • 导包

      	apply plugin: 'org.greenrobot.greendao'
      	//AS升级到3.0后变更为implementation
      	compile 'org.greenrobot:greendao-generator:3.2.0'
      	compile 'org.greenrobot:greendao:3.2.0'
    
  • 核心类

    • 三个核心类

    DaoMaster:使用greenDAO的切入点。DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。它有静态方法来创建表或删除它们。它的内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper实现,它们在SQLite数据库中创建模式。

    DaoSession:管理特定模式的所有可用DAO对象,您可以使用其中一个getter方法获取该对象。DaoSession还提供了一些通用的持久性方法,如实体的插入,加载,更新,刷新和删除。最后,DaoSession对象还跟踪身份范围。

    DAO:数据访问对象(DAO)持久存在并查询实体。对于每个实体,greenDAO生成DAO。它具有比DaoSession更多的持久性方法,例如:count,loadAll和insertInTx。

    • 默认位置
      app -> build -> source -> greendao

    • 自定义配置位置

      greendao {
      	schemaVersion 2//数据库版本号,每次改动记得更新
      	daoPackage 'com.xxx.greendao'//设置DaoMaster、DaoSession、Dao包名
      	targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
      }
      
  • 实体类

    @Entity
    public class Note {
    
    	@Id(autoincrement = true)//自增
    	private Long nid;
    	private String nname;
    	
    	@Generated(hash = 1917899488)
     	public Note(Long nid, String nname) {
        	this.nid = nid;
        	this.nname = nname;
        }
    	@Generated(hash = 1272611929)
    	public Note() {
    	}
    	//get(),set()
    }
    
  • 初始化(创建完实体类后clean,rebuild后就会在指定位置生成DaoMaster等)

    	// 最好写在Application中
    	DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "note-db", null);
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        DaoSession daoSession = daoMaster.newSession();
        // 在Activitie或Fragment中调用
        NoteDao noteDao = daoSession.getNoteDao();
    
  • 增删改查

    	DaoSession daoSession = ((App) getApplication()).getDaoSession();
    	noteDao = daoSession.getNoteDao();
    
    	Note note = new Note();
    	note.setText(noteText);
    	...
    	noteDao.insert(note);
    
    	noteDao.deleteByKey(id);
    
    	note.setText("This note has changed.");
    	noteDao.update(note);
    
    	//查询所有
        noteList = noteDao.queryBuilder().list();
    

参考资料:
greenDAO3
GreenDaoUpgradeHelper
AbstractDao
greenDAO3 入门(配置,基本操作,数据库升级)
GitHub

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值