1.为什么需要GreenDao?Google原生API不方便

@1手动组拼SQL语句

@2需要自己写操作数据库代码

@3不能把数据库中的数据映射成对象

@4没有实现关联查询

2.GreenDao是什么?

开源的数据库操作框架,让操作数据库变为操作对象

3.GreenDao的优点?

@1让业务代码访问对象,而不是操作数据库表

@2隐藏了面向对象的逻辑SQL查询详情

@3无须处理数据库实现

4.ANDROID主流ORM框架

@1 OrmLite

@2 SugarORM

@3 LitePal

@4 GreenDao

.

5.GreenDao自动生成代码

@1创建java工程,引入两个jar包

@2创建类,引入代码如下

import java.io.IOException;

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema; public class GenerateGreenDao { public static void main(String[] args) {
// TODO Auto-generated method stub Schema schema = new Schema(1, "de.greenrobot.daoexample");//第一个参数:版本号,第二个参数生成的代码的包名 Entity note= schema.addEntity("Person");//生成的表名
note.addIdProperty();//增加id字段
note.addStringProperty("name").notNull();//增加name字段
note.addIntProperty("age");//增加age字段
note.addStringProperty("sex");//sex字段
note.addDateProperty("date");//date字段 try {
new DaoGenerator().generateAll(schema, "../greendaogenerate/src"); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

@3编译并运行上述代码,查看结果,生成四个类,以后需要将这四个类拷贝到android工程中

6.使用GreenDao的API

@1初始化数据库

    private void openDB() {
// do this once, for example in your Application class
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(MainActivity.this, "person.db", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
// do this in your activities/fragments to get hold of a DAO
dao = daoSession.getPersonDao();
}

@2增加

   //增加
public void save(){
//要插入的对象
Person person = new Person(Long.valueOf(1),name.getText().toString(),Integer.valueOf(age.getText().toString()),"women",new Date());
//执行插入
dao.insert(person);
//清空输入框
name.setText("");
age.setText("");
Log.i("person","personid"+person.getId());
}

@3修改

    public void update(Person p){
dao.insertOrReplace(p);
}

@4删除

    public void delete(Person p){
dao.delete(p);
}

@5查询

    //查询所有
public void getAll(){
List<Person> list = dao.queryBuilder().list();
for(Person p:list){
Log.v("Person",p.toString());
}
Person person = list.get(0);
person.setSex("man");
update(person); }

开源框架GreenDao的操作的更多相关文章

  1. 数据库开源框架GreenDao的使用解析

    数据库开源框架GreenDao的使用解析 1,GreenDao概述 1),greenDao是一个当下十分火热的数据库开源框架,或者说是一个帮助Android开发者将数据存到SQLite中的一个开源项目 ...

  2. Android eclipse下数据开源框架GreenDao的配置

    1.前言 ORM(Object-RelationMapping,对象关系映射),是一种为了解决面向对象与数据库存在的互一匹配的现象的技术,通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到 ...

  3. IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

    每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...

  4. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...

  5. Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...

  6. Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...

  7. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  8. ORM数据库框架 greenDAO SQLite MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)

    摘要: Android中对SQLite数据库使用,是一件非常频繁的事情.现今,也有非常多的SQLite处理的开源框架,其中最著名的greenDao,它以占用资源少,处理效率高等特点,成为优秀的ORM框 ...

随机推荐

  1. fgets()函数以及fputs()函数

    fgets() fgets() 该函数是一个文件操作相关的函数 暂时使用这个函数可以从键盘接收一个字符串,保存到字符数组中 原来接收字符串保存到数组中的方法: char str[50]; 1) sca ...

  2. 镜像的缓存特性 - 每天5分钟玩转 Docker 容器技术(14)

    上一节我们学习了镜像的分层结构,今天讨论镜像的缓存特性. Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建. 举例说明.在前面的 Dockerfile ...

  3. Java 通过先序后序序列生成二叉树

    题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证. 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 ...

  4. 回答集编程背景(Answer Set Programming)

    毕业设计跟的导师是研究计算机理论的,花了三个月学习符号逻辑,试图优化一个回答集程序的求解器(Answer set solver).比起眼花缭乱的前端框架和热闹的社区讨论,符号逻辑就是一个挺小众的数学领 ...

  5. .Net程序猿需掌握的知识

    作为一个.Net的技术人员需要掌握的技术,当然,理解这些知识点并不能让你学会.NET开发. 但能够衡量你是否有着走出校门的能力,也算是给自己留一个知识的储备库吧. 共勉! 基础知识: 数据类型 变量 ...

  6. python3.5 安装lxml

    通过xpath 爬虫时,使用到了lxml,通过pip 安装lxml 报错"building 'lxml.etree' extension  building 'lxml.etree' ext ...

  7. Enum in Java

    1. Enum Class public enum ContainerPropertyConstants { RETAILER("retailer"), LINED("i ...

  8. 使用r.js优化静态资源

    r.js主要功能:优化项目的静态资源.可以简化压缩代码,减少体积.指定模块将多个组件合并为一个文件,减少HTTP请求数量.具体使用步骤如下: 先把 r.js 文件放到项目根目录,再于项目根目录内新建一 ...

  9. chroot jail

    注意,原标题是:Linux Virtualization using Chroot Jail,我实在不知道怎么翻译,所以,自作主张,选了chroot jail作为标题.原文地址 chroot jail ...

  10. 史诗手册!微信小程序新手自学入门宝典!

    一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12 ...