SqLite 框架 GreenDAO
GreenDAO:
会生成一个数据访问,不用我们书写访问数据库的代码:
核心原理图

生成代码
就是用生成器生成一个对应的java类的生成工厂
public static void main(String[] args)
{
// id name age sex
// Schema s=new Schema(版本号, 代码包名);
Schema s = new Schema(1, "com.itheima.redbaby.dao");
// 描述 对象
Entity person = s.addEntity("Person");
person.addIdProperty().autoincrement().primaryKey();// id
person.addStringProperty("name");
person.addIntProperty("age");
person.addStringProperty("sex");
// 生成代码
// new DaoGenerator().generateAll(s, 输入路径);
try {// .. 工作空间
new DaoGenerator().generateAll(s, "../greendao_redbaby/src/");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
代码生成在指定的路劲如下
测试代码
@Test
public void testLoad() {
DaoSession sesion = getSession();
PersonDao person = sesion.getPersonDao();
Person p=person.load(1L);
Log.i("wzx", p.getName());
}
@Test
public void testLoadAll() {
DaoSession sesion = getSession();
PersonDao person = sesion.getPersonDao();
List<Person> list = person.loadAll();
for (Person p : list) {
Log.i("wzx", p.getName());
}
}
@Test
public void testInsert() {
DaoSession sesion = getSession();
// 获取具体一个Dao PerpsonDao
PersonDao dao = sesion.getPersonDao();
Person p = new Person();
p.setAge(1);
p.setName("张三的歌");
p.setSex("man");
dao.insert(p);
}
public DaoSession getSession() {
// 描述数据 SHOPPING.db
// SqliteOpenHelper
// |--DevOpenHelper
SQLiteDatabase db = new DaoMaster.DevOpenHelper(mContext, "SHOPPING.db", null).getWritableDatabase();
DaoMaster dm = new DaoMaster(db);
// 获取Dao的集合DaoSession PersonDao
DaoSession sesion = dm.newSession();
return sesion;
}
@Test
public void testDeleteByKey() {
DaoSession sesion = getSession();
PersonDao personDao = sesion.getPersonDao();
personDao.deleteByKey(1L);
}
@Test
public void testUpdate() {
DaoSession sesion = getSession();
PersonDao personDao = sesion.getPersonDao();
Person p=personDao.load(1L);
p.setAge(22);
p.setSex("woman");
personDao.update(p);
}
总结:
整体简单了我们对数据库的使用,使的我们不过过多的书写SQL代码;
只需要我们把数据库的每一Row。 专话成为 JavaBean的字段就可以了。
简单粗暴;
SqLite 框架 GreenDAO的更多相关文章
- Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...
- ORM数据库框架 greenDAO SQLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- ORM框架--GreenDao 3.0基本使用指南
0. ORM框架--GreenDao 3.0基本使用指南 1. Gradle 的配置 这里可以参照官方的文档进行最新的配置(本示例的版本等你看到可能就不是最新的了),但是值得注意的一点是,GreenD ...
- 数据库开源框架GreenDao的使用解析
数据库开源框架GreenDao的使用解析 1,GreenDao概述 1),greenDao是一个当下十分火热的数据库开源框架,或者说是一个帮助Android开发者将数据存到SQLite中的一个开源项目 ...
- Android SQLite ORM框架greenDAO在Android Studio中的配置与使用
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园: 追风917 # 说明 greenDAO是安卓中处理SQLite数据库的一个开源的库,详情见其官网:我是官网 详 ...
- 数据库ORM框架GreenDao
常用的数据库: 1). Sql Server2). Access3). Oracle4). Sysbase5). MySql6). Informix7). FoxPro8). PostgreSQL9) ...
- Android 数据库ORM框架GreenDao学习心得及使用总结<一>
转: http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁的读 ...
- 【转载】Android开源:数据库ORM框架GreenDao学习心得及使用总结
转载链接:http://www.it165.net/pro/html/201401/9026.html 最近在对开发项目的性能进行优化.由于项目里涉及了大量的缓存处理和数据库运用,需要对数据库进行频繁 ...
- 对象关系映射(ORM)框架GreenDao简介和基本使用
官网上的介绍,greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案. GreenDao特点 性能最大化,可能是Android平台上最快的ORM框架 易于使用的A ...
随机推荐
- Treap 模板 poj1442&hdu4557
原理可以看hihocoder上面的讲解,很清楚,不多说了. 模板抄lrj训练指南上面的. /** Treap 实现 名次树 功能: 1.找到排名为k的元素 2.值为x的元素的名次 初始化:Node* ...
- 与IO相关的等待事件troubleshooting-系列9
Buffer Cache与IO相关的等待事件: 这种等待事件的产生原因是包含DBWR进程和IO Slaves的Buffer Cache操作. 'db file parallel write' , 'd ...
- Dom深入浅出
Dom1级提供了一个Node接口,该接口将由Dom中所有节点类型(包括元素节点.文本节点.属性节点等12种)实现,而js是作为Node类型来实现的,js中的所有节点类型的继承自Node类型, 所以它们 ...
- CSS构造模型
div 边距 边框 定位 浮动 21.1 div 部分(division)---<div>元素,经常以div形式引用---是XHTML元素,用于定义XHTML文件中的区域. 1.添加div ...
- 读取.tmx地图
读取.tmx地图 m_GameMap = CCTMXTiledMap::create("map1.tmx"); this->addChild(m_GameMap,1); 读取 ...
- 压缩UI深度的代码实现
记录一下,或许同样使用深度的NGUI以后会用到. 目前的项目的UI是用Stage3D实现的,采用了类似NGUI填写深度来确定覆盖关系,但同时可以使用的深度是有一个固定范围的,导致的问题是如果UI过多深 ...
- cocos2d-x 手势之简单实现
转自:http://blog.sina.com.cn/s/blog_61ece099010187tl.html 手势之前也发过一篇,但是我感觉那个还不够轻巧. 而且大多数游戏里面不会有那么复杂的手势, ...
- ThinkPHP CURD方法盘点:page方法
page方法也是模型的连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法. 用法 我们在前面已经了解了关于limit方法用于分页查询的情况,而page方法则是更人性化的进行分页查询的方法,例 ...
- ThinkPHP CURD方法盘点:data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...
- 【Android】Activity遮罩效果的实现
Activity文件 package com.app.test02; import android.app.Activity; import android.graphics.Color; impor ...