GreenDao3的基本使用
来源:互联网 发布:海洋 知乎 编辑:程序博客网 时间:2024/05/29 19:12
这几天在学GreenDao3,看了很多的博客,终于勉强会用了,在这里做一个总结。关于greenDAO的优点这里就不再废话了,大家都知道。
GreenDao3 的使用:
第一步:在module的Build.gradle中添加如下配置:
apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' //greenDAO3开始使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码。//sync project的时候,gradle会自动去maven仓库下载一个gradle的插件,千万别忘了加这句 }}greendao { schemaVersion 2 // 数据库版本号 daoPackage 'com.dong.mydesign.module.greendao' //设置DaoMaster、DaoSession、Dao所在的包名 targetGenDir 'src/main/java' //设置DaoMaster、DaoSession、Dao所在的目录}在dependencies中加入引用
dependencies { compile 'org.greenrobot:greendao:3.2.2' compile'org.greenrobot:greendao-generator:3.2.2'}
第二步:编写entity实体类:
@Entity //将我们的java普通类变为一个能够被greenDAO识别的数据库类型的实体类public class User1 { @Id(autoincrement = true) //这个字段在数据库中意义为主键,默认是自增长的,所修饰的字段必须为long类型 private Long id; private String name; private int age; }
然后点AS中的 Build ---> Make Project AS会帮你在User类原来的基础上生成get、set方法跟注解
package com.dong.mydesign.module.databean;import org.greenrobot.greendao.annotation.Entity;import org.greenrobot.greendao.annotation.Id;import org.greenrobot.greendao.annotation.Generated;/** * Created by dong on 2017/6/1. */@Entitypublic class User1 { @Id(autoincrement = true) private Long id; private String name; private int age; @Generated(hash = 479634891) public User1(Long id, String name, int age) { this.id = id; this.name = name; this.age = age; } @Generated(hash = 1224450628) public User1() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; }}
当然,变化的还有下面这个,我们的项目下多了greendao包和几个java类(位置取决于你gradle里配置):
第三步:在Application初始化DaoSession(也可以自己定义一个封装类):
private static DaoSession mDaoSession;@Overridepublic void onCreate() { super.onCreate(); initDataBase(this);}private void initDataBase(Context ctx){ DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(ctx,"data1_config"); Database db = openHelper.getReadableDb(); DaoMaster daoMaster = new DaoMaster(db); mDaoSession = daoMaster.newSession();}public static DaoSession getDaoSession(){ return mDaoSession;}
第四步:开始使用GreenDao
创建Activity用于测试增删改查(就是四个Button加一个TextView):
@Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.bt_add: User1 user1 = new User1(null,"dong",24); User1 user2 = new User1(null,"sheng",23); User1 user3 = new User1(null,"liang",22); try { mDaoSession.getUser1Dao().insert(user1); mDaoSession.getUser1Dao().insert(user2); mDaoSession.getUser1Dao().insert(user3); ToastUtils.showToast(GreendaoActivity.this,"数据库插入完成"); }catch (Exception e){ Logger.e("dongs1","数据库插入失败" + e.toString()); } break; case R.id.bt_del: try { User1Dao userDao = mDaoSession.getUser1Dao(); List<User1> shengs = userDao.queryBuilder().where(User1Dao.Properties.Name.eq("sheng")).build().list(); if(shengs.size() > 0){ for (User1 sheng : shengs) { userDao.deleteByKey(sheng.getId()); } } ToastUtils.showToast(GreendaoActivity.this,"数据库删除完成"); }catch (Exception e){ Logger.e("dongs1","数据库删除失败"+ e.toString()); } break; case R.id.bt_change: User1Dao userDao = mDaoSession.getUser1Dao(); List<User1> liangs = userDao.queryBuilder().where(User1Dao.Properties.Name.eq("liang")).build().list(); try { if(liangs.size() > 0){ for (User1 liang : liangs) { liang.setAge(20); userDao.update(liang); } } ToastUtils.showToast(GreendaoActivity.this,"数据库更改完成"); }catch (Exception e){ Logger.e("dongs1","数据库更改失败"+ e.toString()); } break; case R.id.bt_query: try { List<User1> user1s = mDaoSession.getUser1Dao().loadAll(); StringBuilder stb = new StringBuilder(); for (User1 user11 : user1s) { stb.append(user11.getId() + "..."+user11.getName() + "..." + user11.getAge() + "\n"); } tv_show.setText(stb.toString()); ToastUtils.showToast(GreendaoActivity.this,"数据库查询完成"); }catch (Exception e){ Logger.e("dongs1","数据库查询失败"+ e.toString()); } break; }}
好了,最基本的用法就介绍到这里,如果有什么错误的地方麻烦及时指出以免我误导别人。当然您有更好的意见或建议欢迎讨论,谢谢。
阅读全文
0 0
- greenDao3的基本使用
- GreenDao3的基本使用
- greenDao3.0 的基本使用
- GreenDao3.0 的基本使用
- GreenDao3.2的基本使用
- 最详细GreenDao3.2的基本使用
- GreenDao3.2的基本使用入门
- greenDAO3.2的使用
- GreenDao3.2的使用
- greenDAO3.2的使用
- GreenDao3的初步使用
- GreenDao3.0的使用
- GreenDao3的简单使用
- GreenDao3.0的使用
- greendao3.22的使用
- [AS2.3.3]greenDao3.2.2基本使用
- greendao3.2的简单使用
- 关于GreenDao3.0的使用
- 智能
- Jellyball下拉背景增加松开回弹
- MVC、MVP、MVVM三种开发模式
- 手写EventBus框架
- 程序侯之路的开始
- GreenDao3的基本使用
- 【Kafka】深入了解kafka
- centos7下rsync安装
- 【MFC/C++操作word】Word篇(OLED/COM)
- <Shader>模型颜色动态渐变,lerp的灵活使用
- win7 安装ujson 出现的“error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27”
- eclipse 无法打开工作空间
- 详解Java类的生命周期
- 求 1-10000之间所有的素数