数据库框架之Greendao从无到有(一)
2016-03-03 09:20
387 查看
前一段时间,我们正在寻找一个Android数据库映射的框架,我们最终找到Greendao。但是我们没有找到一个完整的教程,都是些零零散散的(所以它不是从零开始!)由于这个原因,在我们认为一个好的教程,包括所有的步骤和不依赖于准备好的项目,所以我们得自己动手去写个教程。
所以我们的教程是:greendao从无到有–没有库,没有在线的依赖。在什么都没有的情况下,一层层搭建出来。
请注意,我们保持简短短、简便的教程,我们将不能涵盖所有的基础知识(如安装Android Studio)
。
在这个小教程,我们创建一个应用程序来管理你的东西借给别人。
完成这一系列我们将学会:
GreenDao数据模型基础
列表recyclerview中显示我们的数据
增查改删(CRUD)
以及增查改删(CRUD)过程中遇到的错误
2.创建工程
3.下载依赖包
4.调整项目结构
5.插入jar包
6.创建数据模型
7.生成的类
Person
id
name
comment
Lease(租赁)
id
item
comment(评论)
leasedate(租赁日期)
returndate(返还日期)
在小窗口的右边请选择“Start a new Android Studio project”开始:
在那之后,Android Studio要求项目名称,填写“leasegreendao”,以及我们公司的名字。请注意,公司名称也作为包名,所以我决定使用”tutorials.devteam83 .com”。
你应该填写自己的域名(+分包的名称),但请记住调整这后一阶段。
在下面的对话框中Android Studio要求”Target Android Devices”项目–由于本教程不包含版本之间的差异等,请选择“Phone and Tablet”(API级别21)
点next进入下一步,AS非常热情的想给我们创建一个activity,但是我们现在不需要,所以选择(and select “Add No Activity”)拒绝新建活动
第二步完成了
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.greenrobot%22%20AND%20a%3A%22greendao-generator%22
http://search.maven.org/#search%7Cga%7C1%7Corg.freemarker
如下图下载freemarker
greendao支持自动生成数据模型为我们直接进入我们的项目。 该模块是一个java应用程序和我们的应用程序分开,所以我们要创建一个新的模块。右键单击“leasegreendao”并选择 “New” -> “Module”
之后选择 “Java Library”
选择next,调整包名如下图
点击finsh完成
将freemarker与“greendao-generator两个jar包导入到上一步新建的项目中去,如图
并在build.gradle添加依赖
之后若出现“Sync Now”请点击同步Gradle
现在它变得有趣了,我们开始创建模型!打开类”leasedaogenerator”并添加如下方法:
这意味着我们创造了一个“模式(schema)”,我们再次使用我们的软件包的名称(+分包模式),告诉greendao这是1版.
然后,我们给greendao为了创造我们的实体:
据我认为这是非常直观的,这将创建一个单独的实体,但之间的一切没有关系,一个租赁(lease)应属于一个人,所以我们必须增加以下:
为了使同一关系可用另一个方法,在所有租约中,我们添加了一个属性,这意味着有一个属性的人的对象,我们添加如下:
下面我们需自动生成一些类模型,添加如下
“../app/src/main/java”为输出路径
以上代码添加都是在leasedaogenerator中,我们看看leasedaogenerator类中的整体代码。
终于写完咯,下面来运行吧,该怎么运行呢?
我们只需要点击“Gradle”,在右边的窗口,推出“run”任务“leasedaogenerator”。
只要没有打字错误,你也应该得到以下:
在我们的应用程序中,下面的文件应该出现:
祝贺你你成功咯。
如果你得到错误,请查看代码是否有错误
第一部分主要是生成数据模型,第二部分正式使用GreenDao咯。
所以我们的教程是:greendao从无到有–没有库,没有在线的依赖。在什么都没有的情况下,一层层搭建出来。
请注意,我们保持简短短、简便的教程,我们将不能涵盖所有的基础知识(如安装Android Studio)
。
在这个小教程,我们创建一个应用程序来管理你的东西借给别人。
完成这一系列我们将学会:
GreenDao数据模型基础
列表recyclerview中显示我们的数据
增查改删(CRUD)
以及增查改删(CRUD)过程中遇到的错误
第一部分内容
1.数据模型2.创建工程
3.下载依赖包
4.调整项目结构
5.插入jar包
6.创建数据模型
7.生成的类
数据模型
数据模型是由唯一的实体:人和租赁。我们不管理项目–他们是输入文本时借贷的东西。Person
id
name
comment
Lease(租赁)
id
item
comment(评论)
leasedate(租赁日期)
returndate(返还日期)
创建项目
让我们打开AndroidStudio。万一已经打开的项目,请关闭它,通过菜单选择“File” -> “Close Project”.。在小窗口的右边请选择“Start a new Android Studio project”开始:
在那之后,Android Studio要求项目名称,填写“leasegreendao”,以及我们公司的名字。请注意,公司名称也作为包名,所以我决定使用”tutorials.devteam83 .com”。
你应该填写自己的域名(+分包的名称),但请记住调整这后一阶段。
在下面的对话框中Android Studio要求”Target Android Devices”项目–由于本教程不包含版本之间的差异等,请选择“Phone and Tablet”(API级别21)
点next进入下一步,AS非常热情的想给我们创建一个activity,但是我们现在不需要,所以选择(and select “Add No Activity”)拒绝新建活动
第二步完成了
下载依赖包
http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.greenrobot%22%20AND%20a%3A%22greendao%22http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22de.greenrobot%22%20AND%20a%3A%22greendao-generator%22
http://search.maven.org/#search%7Cga%7C1%7Corg.freemarker
如下图下载freemarker
greendao支持自动生成数据模型为我们直接进入我们的项目。 该模块是一个java应用程序和我们的应用程序分开,所以我们要创建一个新的模块。右键单击“leasegreendao”并选择 “New” -> “Module”
之后选择 “Java Library”
选择next,调整包名如下图
点击finsh完成
将freemarker与“greendao-generator两个jar包导入到上一步新建的项目中去,如图
并在build.gradle添加依赖
apply plugin: 'application' apply plugin: 'java' mainClassName = "com.devteam83.tutorials.leasegreendao.LeaseDaoGenerator" dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/greendao-generator-1.3.1.jar') compile files('libs/freemarker-2.3.22.jar') }
之后若出现“Sync Now”请点击同步Gradle
现在它变得有趣了,我们开始创建模型!打开类”leasedaogenerator”并添加如下方法:
public static void main(String args[]) throws Exception { Schema schema = new Schema(1, "com.devteam83.tutorials.leasegreendao.model"); }
这意味着我们创造了一个“模式(schema)”,我们再次使用我们的软件包的名称(+分包模式),告诉greendao这是1版.
然后,我们给greendao为了创造我们的实体:
Entity person = schema.addEntity("Person"); person.addIdProperty(); person.addStringProperty("name"); person.addStringProperty("comment"); Entity lease = schema.addEntity("Lease"); lease.addIdProperty(); lease.addStringProperty("item"); lease.addStringProperty("comment"); lease.addLongProperty("leasedate"); lease.addLongProperty("returndate");
据我认为这是非常直观的,这将创建一个单独的实体,但之间的一切没有关系,一个租赁(lease)应属于一个人,所以我们必须增加以下:
Property personId = lease.addLongProperty("personId").getProperty(); lease.addToOne(person, personId);
为了使同一关系可用另一个方法,在所有租约中,我们添加了一个属性,这意味着有一个属性的人的对象,我们添加如下:
ToMany personToLease = person.addToMany(lease, personId); personToLease.setName("leases");
下面我们需自动生成一些类模型,添加如下
new DaoGenerator().generateAll(schema, "../app/src/main/java");
“../app/src/main/java”为输出路径
以上代码添加都是在leasedaogenerator中,我们看看leasedaogenerator类中的整体代码。
package com.devteam83.tutorials.leasegreendao;
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
import de.greenrobot.daogenerator.ToMany;
public class LeaseDaoGenerator {
public static void main(String args[]) throws Exception {
Schema schema = new Schema(1, "com.devteam83.tutorials.leasegreendao.model");
Entity person = schema.addEntity("Person"); person.addIdProperty(); person.addStringProperty("name"); person.addStringProperty("comment"); Entity lease = schema.addEntity("Lease"); lease.addIdProperty(); lease.addStringProperty("item"); lease.addStringProperty("comment"); lease.addLongProperty("leasedate"); lease.addLongProperty("returndate");
Property personId = lease.addLongProperty("personId").getProperty(); lease.addToOne(person, personId);
ToMany personToLease = person.addToMany(lease, personId); personToLease.setName("leases");
new DaoGenerator().generateAll(schema, "../app/src/main/java");
}
}
终于写完咯,下面来运行吧,该怎么运行呢?
我们只需要点击“Gradle”,在右边的窗口,推出“run”任务“leasedaogenerator”。
只要没有打字错误,你也应该得到以下:
Processed 2 entities in 185ms BUILD SUCCESSFUL Total time: 4.1 secs 23:11:50: External task execution finished 'run'.
在我们的应用程序中,下面的文件应该出现:
祝贺你你成功咯。
如果你得到错误,请查看代码是否有错误
第一部分主要是生成数据模型,第二部分正式使用GreenDao咯。
相关文章推荐
- oracle下lag和lead分析函数
- mysql 查询死锁以及解锁
- SQL SERVER with递归示例一则
- redis-windows服务安装
- Mac 安装 MySQL
- MSsql 增删改某个表时,用触发器调用DLL通知外部窗体程序
- SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
- 解析Mysql字符集概念
- PB数据窗口使用数组参数执行SQL的IN方法[转]
- SQLITE报错database is locked的解决办法
- SQL读书笔记(五)
- SQL读书笔记(四)
- mysql的基本使用方法
- IOS sqlite3 数据增删改查
- MySQL用户授权 和 bin-log日志 详解和实战
- IOS sqlite3 使用简单介绍 使用简单介绍
- linux redis安装
- linux上安装Oracle 11g R2 标准版 64位
- Hibernate学习篇03——Oracle sequence
- oracle之续day06—demo