1.在工程外层(Project)的build.gradle中添加依赖

 buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
//GreenDao3依赖
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
}

2.在项目(Module,也就是app内层)的build.gradle中添加依赖

 apply plugin: 'com.android.application'
//使用greendao
apply plugin: 'org.greenrobot.greendao' android {
compileSdkVersion
buildToolsVersion "23.0.2" defaultConfig {
applicationId "com.handsome.didi"
minSdkVersion
targetSdkVersion
versionCode
versionName "1.0"
}
//greendao配置
greendao {
18 //版本号,升级时可配置
19 schemaVersion 1
20 }
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
//greendao依赖
compile 'org.greenrobot:greendao:3.2.0'
}

到这里就配置成功了,同步编译(Sync Project)之后没毛病的话就可以往下创建bean类了。

 @Entity
public class Shop{ //不能用int
@Id(autoincrement = true)
private Long id; //商品名称
@Unique
private String name; //商品价格
@Property(nameInDb = "price")
private String price; }

这里创建了一个“商品”的实体类,(PS:主键是Long型,不是long哟)然后选择build——>make project,此时会自动为shop类生成构造方法和set、get方法,还有就是greendao操作的重要部分: DaoMaster、DaoSession、DAOS类,但是初次生成并不在src目录下,而是在这里

如果你想把它放入其他目录方便操作或查看的话,则在build.gradle刚刚配置的地方再加上几句

     greendao {
//版本号,升级时可配置
schemaVersion
//文件目录
targetGenDir 'src/main/java'
//包名路径
daoPackage 'com.sharley.greendaodemo.greendao'
}

这样它就会自动移植过来了,复制到指定位置

下面示例说明一下多表关联中的一对多的情况

比如我再新建一个实体类user,用户与商品之间成立关联关系,一个用户可购买多个商品,那么在user类中加入ToMany设置。

 @Entity
public class User { @Id(autoincrement = true)
private Long id; private String name; @ToMany(referencedJoinProperty = "sid")
private List<Shop> shops;
}

在shop类中再额外添加一个字段,即一对多时的外主键,注意一定要与user类的id相同

private Long sid;

make project后,user类除了之前说的方法之外还会额外生成一个getShops的方法

     /** Used to resolve relations */
@Generated(hash = )
private transient DaoSession daoSession;
/** Used for active entity operations. */
@Generated(hash = )
private transient UserDao myDao; /**
* To-many relationship, resolved on first access (and after reset).
* Changes to to-many relations are not persisted, make changes to the target entity.
*/
@Generated(hash = )
public List<Shop> getShops() {
if (shops == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
}
ShopDao targetDao = daoSession.getShopDao();
List<Shop> shopsNew = targetDao._queryUser_Shops(id);
synchronized (this) {
if (shops == null) {
shops = shopsNew;
}
}
}
return shops;
}

然后,差不多就酱。

参考:http://blog.csdn.net/qq_30379689/article/details/54410838#comments

greendao数据库初次使用的配置及多表关联的初始化的更多相关文章

  1. Android数据库高手秘籍(三)——使用LitePal升级表

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39151617 在上一篇文章中,我们学习了LitePal的基本使用方法,体验了使用框 ...

  2. SQL Server 2016的数据库范围内的配置

    SQL Server 2016真的让人眼前一亮.几天前微软就提供了RCO(候选发布版)版本的下载.我已经围观了一圈RCO版本,其中一个最拽的功能是数据库范围内的配置(Database Scoped C ...

  3. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  4. Linux学习之CentOS--CentOS6.4下Mysql数据库的安装与配置【转】

      如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--C ...

  5. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  6. SSD Cloud Hosting–Linode-Mysql数据库的安装与配置

    接着上一篇的话题:SSD Cloud Hosting - Linode的配置和部署,搭建Java环境 8.Mysql数据库的安装与配置 安装 检查yum里边有没有mysql: yum list|gre ...

  7. Linux学习之CentOS6下Mysql数据库的安装与配置

    转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  8. Linux CentOS6.4下Mysql数据库的安装与配置

    一.mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱 ...

  9. CentOS6.4/6.7下Mysql数据库的安装与配置(转载)

    通过RPM方式 给centos  安装mysql  最好有光盘,呵呵,网络也可以下载rpm安装包,不过文件较大. 1 挂载光盘 mount /dev/cdrom /mnt/cdrom/mount: b ...

随机推荐

  1. Nginx(四):压缩功能详解

    gzip (GNU-ZIP) 是一种压缩技术.经过 gzip 压缩后页面大小可以变为原来的 30%甚至更小. 这样,用户浏览页面的时候速度会快得多.  gzip 的压缩页面需要浏览器和服务器双方都支持 ...

  2. cocopods 问题

    http://www.cocoachina.com/bbs/read.php?tid=1711580

  3. JDBC 事务和 JTA 事务

    Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于 ...

  4. 菜鸟学Java(二十一)——如何更好的进行单元测试——JUnit

    测试在软件生命周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验 ...

  5. numpy数组-标准化数据

    标准化数据的公式: (数据值 - 平均数) / 标准差 import numpy as np employment = np.array([ 55.70000076, 51.40000153, 50. ...

  6. 李洪强iOS开发之静态库的打包一

    李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...

  7. MyBean-关于plugMap共享对象

    plugMap实现了对象的存储,使用setObject,和getObject来对对象进行存储   内部其实是一个列表,而且他会在释放的时候会情况尝试释放所有的对象,所以如果你共享的对象提前进行了释放, ...

  8. 【Socket】linux广播技术

    1.mystery引入        1)本学期学的ARP协议和NTP协议都属于广播技术的实现,所以借此机会了解下广播技术的底层原理    2)在IP地址中,如果最后一个数字为255,则一定是一个广播 ...

  9. Java编译命令整理

    引言 近期在做Android相关开发工作,不可避免的需要接触Java层的调用机制,好多年不用Java了,这里整理下相关的编译命令.作为后续参考使用,也防止每次都需要到处查找. 基本概念 javac - ...

  10. 普通用户无法su到root用户

    问题描述: 普通用户切换回root用户时,密码输入正确仍然报密码错误. 问题解决: 1.1 检查/etc目录下passwd的权限 [root@dev /]# ll/etc/passwd-rw-r--r ...