greenDao框架浅入深出 2

上一篇讲述了greenDao在android studio中的配置过程,已经简单的查询语句,这是一个数据库框架,要用好一个数据库框架我们仅仅只会配置是远远不够的,我们要熟悉他能干什么,他能给我们带来的便捷操作,这样我们使用的时候就可以事半功倍,围绕这两个问题我们再一起探究这个:
1:性能最大化

2:内存开销最小

3:API 简单好用

4:对Android 高度优化

5:2.2版本以上还支持加密数据库
GreenDao的插入:

  for (int i = 0; i < 20; i++) {
            PersonEntity person = new PersonEntity((long) i,"孙悟空"+i,20+i,"男");
            // 使用这个方法可以一条一条的写入数据库
            personDao.insert(person);
            // 插入或者替换单条数据,就是id重复也可以使用
//            personDao.insertOrReplace(person);
            personList.add(person);
                 // 这个方法可以将一个集合直接写入数据库,很方便
//        personDao.insertInTx(personList);
        // 看名字也知道是干嘛的了吧,把数据写入,或者替换
//        personDao.insertOrReplaceInTx(personList);
、、

//批量插入
//personDao.insertInTx(persons)//参数是一个集合
        }

那来看看原生的sqlite

  String insertSql = String.format("insert into %s (%s,%s,%s) values('%s','%s','%s')",
        personDao.TABLENAME,
        personDao.Properties.Title.columnName,
       personDao.Properties.Content.columnName,
      personDao.Properties.CreateTime.columnName,
        person.getTitle(),
        person.getContent(),
        person.getCreateTime());
   daoSession.getDatabase().execSQL(insertSql);

很显然原声比较麻烦,需要些sql语句,然而我们在写sql语句的时候很容易出错,而且每次都要写很多的代码,这个时候就体现框架的便捷性
GreenDao更新操作

 personDao.update(new PersonEntity(1l,"贝吉塔",100,"男"));单个跟新
  personDao.updateInTx(personDaos);//批量跟新

相对于数据库原生操作简单了很多
GrennDao的删除操作
1:单条删除(唯一性是主见相同)

 personDao.delete(new PersonEntity(1l,"贝吉塔",100,"男"));

2: 单条删除 指定主键删除

 personDao.deleteByKey(31);

3:批量删除

personDao.deleteInTx(persons);

4:批量按主键删除

 personDao.deleteByKeyInTx(persons);

5:删除所有

personDao.deleteAll(Person.class)

GreenDao 查询操作 也是最复杂的
1:按照id主键查询

personDao.load(31)

2: QueryBuilder 复合查询

    public List<Note> queryBuider() throws Exception {  
         //select from tb_note where Content like 'greendao'  查询语句
         return personDao().queryBuilder()
         .where(NoteDao.Properties.Content.like("greendao")).build().list();  
     }  

    public long queryBuider2(long pk) throws Exception {  
         //select count(*) from tb_note where Content like 'greendao'  查询语句
         return personDao().queryBuilder()
         .where(NoteDao.Properties.Content.like("greendao")).buildCount().count();  

查询所有的四种方法

    daoSession.loadAll(Note.class);  
    daoSession.queryBuilder(Note.class).build().list();  
    daoSession.getNoteDao().queryBuilder().build().list();  
    personDao.loadAll();  

最后附上几个截图:
这张图是项目结构
这张图是项目结构
这里写图片描述
这里写图片描述
这两张图是android studio引入框架集成截图
最后,当然数据库操作远远不止这么多操作,今天先写到这里,等用熟了这个框架以后,熟读源码后再作一篇总结,谢谢各位读友。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值