GreenDao3.0配置及使用
来源:互联网 发布:烟机二件套 知乎 编辑:程序博客网 时间:2024/04/29 18:28
一、GreenDao3.0的配置
1、在build.gradle的根目录中添加如下代码
apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}greendao { //数据库的版本号,如果添加表,或者某表结构改变了要修改这个,否则,再次运行会报没有这个表或者没有这个列的错误 schemaVersion 1 //可以自己定义,存放Dao的路径 daoPackage 'com.trt.greendao.gen' //生成数据库文件的目录,可以将生成的文件放到我们的java目录中,而不是build中,这样就不用额外的设置资源目录了 targetGenDir 'src/main/java'}
2、在根目录dependencies下添加包的依赖
compile 'org.greenrobot:greendao:3.0.1' compile 'org.greenrobot:greendao-generator:3.0.0'
二、开始使用
创建一个Person实体类并创建该表
@Entitypublic class Person { @Id private Long id; private String name; private String sex; private String address; private String phone; private String email; @Transient private String aa; }
编译之后就会变成这个样子(多了set和get方法)
@Entitypublic class Person { @Id private Long id; private String name; private String sex; private String address; private String phone; private String email; @Transient private String aa; public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } public String getSex() { return this.sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getPhone() { return this.phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } @Generated(hash = 1113691994) public Person(Long id, String name, String sex, String address, String phone, String email) { this.id = id; this.name = name; this.sex = sex; this.address = address; this.phone = phone; this.email = email; } @Generated(hash = 1024547259) public Person() { }}
同时看你的目录结构是不是多了你刚刚在build.gradle中写的那个目录
在该目录下可以看到多了三个文件
- DaoMaster
- DaoSession
- PersonDao
当你在此创建实体类的时候就会出现相应的xxXDao文件,而DaoMaster和DaoSession只有一份,但是里面的内容会不断的更新。
准备工作弄完了,那怎么得到想要的数据库和怎么操作呢?
写一个工具类用来获取xxXDao文件(xxXDao文件是进行操作的)
public class GreenDaoManager { private static GreenDaoManager mInstance; private DaoMaster mDaoMaster; private DaoSession mDaoSession; private GreenDaoManager() { DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MainApplication.getContext(),"数据库名称", null); mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase()); mDaoSession = mDaoMaster.newSession(); } public static GreenDaoManager getInstance() { if (mInstance == null) { mInstance = new GreenDaoManager(); } return mInstance; } public DaoSession getSession() { return mDaoSession; }}
我们可以在Application中对数据库进行初始化
GreenDaoManager.getInstance();
三、得到xxXDao对象进行增删改查
1、得到xxXDao对象
PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();
2、添加数据
Person person = new Person(1l,"美年","女","南京","15523439808","dddd");//使用事务插入数据,若数据存在 就覆盖之前的内容(一般后缀带Tx的都是事务性操作)personDao.insertOrReplaceInTx(person);
3、删除数据
PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();Person person = personDao.load(3l); if(person!=null){ personDao.delete(person); }
4、修改数据
PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();Person person = personDao.load(3l); if(person!=null){ person.setName("呵呵"); }//使用事务更新数据personDao.updateInTx(person);
5、查找数据
//获取xxXDao对象PersonDao personDao = GreenDaoManager.getInstance().getSession().getPersonDao();//查询所有的数据personDao.loadAll();//根据key值查数据personDao.load(1l);//根据where条件查询数据,返回为List集合 personDao.queryBuilder().where(PersonDao.Properties.Sex.eq("男")).build().list();//根据where条件查询数据,返回为一个 personDao.queryBuilder().where(PersonDao.Properties.Id.eq(1l)).build().unique();
四、greendao中的注解
1、 @Entity 定义实体
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active无论是更新生成都刷新2、@Id主键
3、@NotNull 不为null
4、@Unique 唯一约束
5、@ToMany一对多
6、@OrderBy 排序
7、@ToOne 一对一
8、 @Transient 不存储在数据库中
9、@generated 由greendao产生的构造函数或方法
0 0
- GreenDao3.0配置及使用
- Android GreenDao3.2配置及使用详解
- Android GreenDao3.2配置及使用详解
- Android GreenDao3.2配置及使用详解
- GreenDao3.0配置加使用(转)
- Android Studio 配置使用GreenDao3.0
- GreenDao3.0基本配置
- GreenDao3.1详解及使用
- greendao3.2使用配置教程
- GreenDao3.0简单使用
- GreenDao3.0简单使用
- greenDAO3.0使用
- GreenDao3.0使用详解
- GreenDao3.0简单使用
- GreenDao3.0简单使用
- GreenDao3.0简单使用
- GreenDao3.0简单使用
- GreenDao3.0的使用
- IOS debug日志和release日志
- 我之创客篇
- web模块化规范和实现
- 关于VCO调试过程中出现相噪-141dBC/Hz@50KHz说明
- django在admin后台中注册自己创建的数据库表
- GreenDao3.0配置及使用
- iOS 日期格式化
- Java EE启示录(j2ee详解)
- linux驱动由浅入深系列:usb子系统之二(枚举过程)
- cookies,sessionStorage 和 localStorage 的区别
- 2017年2月份学习总结与反思
- Redis 入门
- SpringMVC支付宝支付即时到账
- javaweb 用户未登入,只能访问系统默认首页。