开源框架GreenDao的操作
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的操作的更多相关文章
- 数据库开源框架GreenDao的使用解析
数据库开源框架GreenDao的使用解析 1,GreenDao概述 1),greenDao是一个当下十分火热的数据库开源框架,或者说是一个帮助Android开发者将数据存到SQLite中的一个开源项目 ...
- Android eclipse下数据开源框架GreenDao的配置
1.前言 ORM(Object-RelationMapping,对象关系映射),是一种为了解决面向对象与数据库存在的互一匹配的现象的技术,通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到 ...
- IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架
每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- ORM数据库框架 greenDAO SQLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- ORM框架greenDao 2 (用于了解旧版本的使用方法,目前最新版本为3.2.2,使用注释的方式来生成)
摘要: Android中对SQLite数据库使用,是一件非常频繁的事情.现今,也有非常多的SQLite处理的开源框架,其中最著名的greenDao,它以占用资源少,处理效率高等特点,成为优秀的ORM框 ...
随机推荐
- Thinkphp3.2学习——架构_URL模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...
- 取消关联svn
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @= ...
- 第二章 基本图像处理(Image Processing)
主要内容: 图像的表示----介绍图像是如何表示的,以及所有基本操作的作用对象 高斯滤波-----滤波操作的原理与应用 图像金字塔-----高斯和拉普拉斯 边缘检测-----Sobel算子和Lapla ...
- 在已经部署svn 服务器上,搭建svn项目 成功版
1.进入svn目录,建立版本库 svnadmin create svntest svntest为svn项目名称 2. hooks/ 目录下新建 post-commit 文件 [钩子脚本] #!/bin ...
- VR的发展历程-VR全景智慧城市
从1962年有第一台VR开始,到2014年Oculus被Facebook收购为止,VR经历了一个非常漫长的过程.从鲜为人知,到被广泛认识,逐渐走进我们生活.这就是VR形成的时代.在这个时代里,VR设备 ...
- QBC查询
1.基本语法 session.beginTransaction(); Criteria criteria = session.createCriteria(Person.class); SimpleE ...
- Day1-模块初识
模块,也叫库,分为标准库和第三方库.标准库,直接导入使用,比如import getpass:第三方库,需下载安装才能使用,比如paramiko: 一.sys模块 import sys print(sy ...
- Java Regex match IP address
Reference: [1] https://www.mkyong.com/regular-expressions/how-to-validate-ip-address-with-regular-ex ...
- aws上redhat安装redis服务记
1.准备 官网下载
- java虚拟机学习-JVM调优总结-基本垃圾回收算法(7)
可以从不同的的角度去划分垃圾回收算法: 1.按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计 ...