GreenDao的基本使用及实例
来源:互联网 发布:vb调用bartender 实例 编辑:程序博客网 时间:2024/04/28 11:35
基础配置
Project moudle配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' } }
- APP moudle配置
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao'
- dependiceis
compile 'org.greenrobot:greendao:3.2.0'
- app moudle 可选配置
//不配置会有默认的路径,也可以指定路径 greendao { schemaVersion 1 //数据库版本号(3.0版) daoPackage 'com.comer.doctor.greendao'//设置DaoMaster、DaoSession、Dao包名 targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 }
开始看到这里我是懵逼的,按照它提示的怎么搞都不行,最终是更改了gradle的版本,原本是2.2的更新到最新的3.3就灭有问题了,至于gradle的版本更新我就不多说了,
1. 是更改插件版本 classpath 'com.android.tools.build:gradle:2.3.0'2. 更改配置的版本号 distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip(在 gradle-wrapper.properties 里面)3. 最好手动的吧gradle文件拷贝到 android studio的gradle 文件夹下 D:\Program Files\Android\Android Studio2.1.3\gradle(sudio安装路径里面)
基本使用
- 构建实体类。
其实实体类中的字段通过greendao的构建自动会生成表的字段名称
1.1我们可以选择有字段但是不在数据中有这字段,可以通过 @Transient 实现
@Entity public class ClinicSysValidate { @Id //主键,可以自己设定,也可以设置成autoincrement自增长 public long ID ; /// 表单编码,留空则为基础配置项 public String FormCode ; /// 字段编码 @Transient //数据库不会有的字段 public String FieldCode ; /// 字段名称 @peoperty //数据库的字段,默认可以不写,默认会添加到数据库里 public String FieldName ; @toMany referencedJoinProperty = "ownerId") / ***/构建关系表,ownerId在关联表里一定要有,类型一定要一样!*** 连着 两个表,因为是集合所以需要 一对多 也可以使用 @toOne 一对一 public List<Users> uses; }
- 基础属性注解
@Id :主键 Long型,可以通过@Id(autoincrement = true)设置自增长
@Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名举例:@Property (nameInDb=”name”)
@NotNul:设置数据库表当前列不能为空
@Transient:添加次标记之后不会生成数据库表的列
- 索引注解
@Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
@Unique:向数据库列添加了一个唯一的约束
- 关系注解
@ToOne:定义与另一个实体(一个实体对象)的关系
@ToMany:定义与多个实体对象的关系
- @Entity 定义实体
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active 无论是更新生成都刷新
(二) @Id
(三) @NotNull 不为null
(四) @Unique 唯一约束
(五) @ToMany 一对多
(六) @OrderBy 排序
(七) @ToOne 一对一
(八) @Transient 不存储在数据库中
(九) @generated 由greendao产生的构造函数或方法
封装工具类
- 根据自己的实际情况封装greendao初始化以及增删改查的方法!
public class DaoUtils { //数据库的查询码 public static DaoSession sDaoSession; public static DaoSession initDao(Context context) { DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(context, Constant.DBName); Database database = openHelper.getWritableDb(); DaoMaster daoMaster = new DaoMaster(database); sDaoSession = daoMaster.newSession(); return sDaoSession; } public static DaoSession getDaoSession(Context context) { if (sDaoSession == null) { initDao(context); } return sDaoSession; } //根据主键获取对象 public static List<ClinicSysValidate> getSysValidate(Context context, String fromCode) { ClinicSysValidateDao dao = getDaoSession(context).getClinicSysValidateDao(); return dao.queryBuilder().where(ClinicSysValidateDao.Properties.FormCode.eq(fromCode)).list(); //查询的时候是根据字Properties来查的也就是你的字段名称,当然表里面的字段名称都是大写的可能和看到的 //不一样 同时还有排序等方法拿到有序的集合! } //获取最后更新时间 public static String getLastEditTime(Context context) { ClinicSysValidateDao dao = getDaoSession(context).getClinicSysValidateDao(); List<ClinicSysValidate> lastTimes = dao.queryBuilder().list(); if (lastTimes != null && lastTimes.size() > 0) { return lastTimes.get(0).LastEditTime; } else { return ""; } } //数据库查看是否存在 public static boolean isExist(Context context, long id) { ClinicSysValidateDao dao = getDaoSession(context).getClinicSysValidateDao(); ClinicSysValidate clinicSysValidate = dao.load(id); return clinicSysValidate==null? false:true; } //数据更新操作 public static void updateData(Context context,ClinicSysValidate clinicSysValidate){ ClinicSysValidateDao dao = getDaoSession(context).getClinicSysValidateDao(); if(isExist(context,clinicSysValidate.ID)){ dao.update(clinicSysValidate); }else{ dao.insert(clinicSysValidate); } } }
阅读全文
0 0
- GreenDao的基本使用及实例
- greenDao的基本使用及用法详解
- GreenDao 的基本使用
- greenDao的基本使用
- greenDao的基本使用
- GreenDao的基本使用
- greenDao的基本使用
- GreenDAO的使用基本篇
- GreenDao的配置及基本操作
- GreenDao 3.2.0 的基本使用
- GreenDao 3.2.0 的基本使用
- GreenDao 3.2.0 的基本使用
- GreenDao 3.2.0 的基本使用
- Android数据库之greendao的基本使用
- GreenDao 3.2.0 的基本使用教程
- GreenDao 3.2.0 的基本使用
- GreenDao的基本使用(android数据库)
- GreenDao的使用步骤及简单使用
- 【牛客】 2017-10-10 操作系统错题整理
- 深入了解DSP与ARM的区别与联系
- 小知识点
- 65、java集合-TreeSet
- 左右一个科技公司成与败的关键(浅谈)
- GreenDao的基本使用及实例
- 机器学习(MDS,ISOMAP)
- < 笔记 > JavaScript
- 新浪微博平台架构(转)
- Mysql数据库的相关问题
- Pandas 与数据整理
- 二叉树前序、中序、后序遍历
- Wannafly模拟赛3 反蝴蝶效应
- CNN目标检测与分割(一):Faster RCNN详解