greendao 3.2使用总结
来源:互联网 发布:氰化钾淘宝叫什么 编辑:程序博客网 时间:2024/05/23 01:22
一、greendao 3.2配置
1、project gradle里面添加配置:
dependencies { classpath 'com.android.tools.build:gradle:2.2.2' //GreenDao3依赖 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' }
2、module gradle引入:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'org.greenrobot:greendao:3.2.0'//greendao 3.2配置 compile 'com.google.code.gson:gson:2.7' androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' compile 'com.google.android.gms:play-services-appindexing:8.4.0'
3、module gradle配置:
//greendao配置 greendao { //版本号,升级时可配置 schemaVersion 1 daoPackage 'kimweng.cuscapi.com.greendao.db'//产生的DaoMaster等所在的包名 targetGenDir 'src/main/java'//包名所在路径}
4、最后别忘了在module gradle添加
apply plugin: 'org.greenrobot.greendao'二、定义实体类:
(标签的使用在下面会讲解:)
package kimweng.cuscapi.com.greendao;import org.greenrobot.greendao.annotation.Entity;import org.greenrobot.greendao.annotation.Id;import org.greenrobot.greendao.annotation.NotNull;import org.greenrobot.greendao.annotation.Unique;import static android.R.string.no;import org.greenrobot.greendao.annotation.Generated;/** * Created by admin on 2017/7/5. */@Entitypublic class Printer { @NotNull private long storeId; @NotNull private String printerType; @Unique private String printerIp; @NotNull private String printerName public String getPrinterIp() { return printerIp; } public void setPrinterIp(String printerIp) { this.printerIp = printerIp; } public String getPrinterType() { return printerType; } public void setPrinterType(String printerType) { this.printerType = printerType; } public String getPrinterName() { return printerName; } public void setPrinterName(String printerName) { this.printerName = printerName; } public long getStoreId() { return storeId; } public void setStoreId(long storeId) { this.storeId = storeId; }}
标签:* A、 @Entity用于描述实体类名,其中active表示update/delete/refresh 方法是否自动生成,默认为false. createInDb表示是否在数据库中创建表,默认为true,如果为false,将不创建该表. generateConstructors表示是否自动生成构造方法(一个有参构造,一个无参构造). indexes表示制定查询数据返回的默认排序规则.(@Index中的value制定排序的数据表中的列明加上排序规则即(ASC/DESC), name表示......,unique表示是否唯一即SQL中的去重复 如果按照多个字段来排序可以这样(比如(indexes={@Index(value="ID ASC"),@Index(value="AGE DESC")}或者 indexes={@Index(value="ID ASC AGE DESC")}))) nameInDb表示该实体对应的数据表的名称,默认为实体名的拼音全大写 generateGettersSetters表示是否自动生成get/set方法,默认为true B、@Id表示该字段是主键,autoincrement表示是否自增,默认为false. C、@Property用于描述字段,nameInDb表示该字段在数据表中对应的列名,默认是实体字段名称. D、@NotNull表示该字段不为null. E、@Transient 表示在创建数据表时候忽略这个字段,也就是在创建表的时候不会创建这个字段. F、@ToOne表示一对一的关系,也就是多条这个实体只对应一条标识的实体joinProperty标识这个实体表中的哪个字段和标识的实体表的主键关联. G、@ToMany标识一对多的关系,也就是一条该实体数据通过指定列名和标识的数据实体的指定列名对应关系(@referencedJoinProperty表示当前标识的实体对应的数据表的 主键,@joinProperties表示当前表和标识的实体对应的数据表的属性对应关系) H、@Convert定义当前标识的实体和数据表中字段之间装换规则.converter表示转换器.columnType表示对应的数据表列名在表中的数据类型,标签里面重点讲一下@ToMany表示表中实体之间的相互关联,比如说一个门店有N个POS点餐设备,每个POS设备又可以连接多个printer,即在门店的属性中有:
private List<POS> posList; private List<Printer> printerList;这个时候就需要在这两个属性前面添加实体之间的关联,否则在自动生成Dao对象时会报错,无法识别list.ToMany类里面有两种关联:referencedJoinProperty和joinProperties
referencedJoinProperty是指list里面的实体类的外键为当前类的主键,即参数值需要填写list里面的实体类属性名;
joinProperties是指都不为空的两个属性之间联系,name为当前类属性,referencedName为list实体里与之对应的属性名。
事例代码:
@ToMany(joinProperties = {@JoinProperty(name = "storeId",referencedName = "storeId")}) private List<Printer> printerList; @ToMany(joinProperties = {@JoinProperty(name ="storeId",referencedName = "storeId")}) private List<POS> posList;以上就已经完成开始编译自动生成。三、数据库初始化和增删改查
private void initDB(){ DaoMaster.DevOpenHelper helper=new DaoMaster.DevOpenHelper(this,"store.db",null); //获取可写数据库 SQLiteDatabase db = helper.getWritableDatabase(); //获取数据库对象 DaoMaster daoMaster = new DaoMaster(db); //获取Dao对象管理者 daoSession = daoMaster.newSession();}daoSession 对象为数据库操作类,这时候你就可以通过daoSession 对表进行操作了。PrinterDao printerDao=daoSession.getPrinterDao();
增删改查不用多说了,只要PrinterDao 类调用相应方法即可。注意:插入操作,如果表中的唯一属性已经存在,插入相同数据会报异常,所以在进行插入操作时最好try catch一下。
阅读全文
0 0
- greendao 3.2使用总结
- Greendao 使用总结
- 使用greenDAO进行开发总结
- GreenDao 3.2使用
- greenDao--3.2基本使用
- greendao:3.2.0使用
- GreenDao 3.2 使用
- GreenDao总结
- GreenDao 3.2.0使用教程
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDao使用
- greenDao 使用
- GreenDao使用
- GreenDAO使用
- 高可靠带物理销毁功能固态硬盘的设计要点
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 元素水平垂直居中方法
- 01开始入门
- NotePad++死了结束进程之后整个文档清空了
- greendao 3.2使用总结
- Android----------ontouchlistener触摸事件
- docker学习笔记 第二记
- 对元素为整数类型的ArrayList执行remove时的注意点
- Linq操作XML,查找节点数据
- Ubuntu 文件文件夹查看权限和设置权限
- MySql优化1——SQL语句优化
- JSON for java入门总结
- 二叉树,由前序和中序求后序