Android greenDao的简单配置和使用
最近自学做东西的时候用到了一个收藏的功能,然后我想把东西存放到SQLite当中,然而自己传值的时候都是用到的实体类,所以存起来也比较麻烦,所以从网上找到一个greenDao的开源框架非常火,不仅效率高,而且内存也占用的小,非常方便。
这里我就简单介绍一下如何配置,至于其他的增、删、改、查了,网上都很多,需要用到的小伙伴们自己去查吧!!
首先我们得明白,greenDao是一个Java代码模版的快速生成器,里面封装好了我们实体类的各种操作。所以
1、我们要用eclipse或者Myeclipse建一个Java工程,我们需要在我们的工程下建立一个lib目录用于放我们的两个包(没有的小伙伴可以去网上下载)
2、右键我们的工程,在弹出的菜单中选择Properties,将我们的两个jar包 加入到我们的工程中
3、操作完成后,我们就可以编写代码了,建立一个类,在里面写下如下代码
package com.fanlei.greenDao;
import java.io.IOException; import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema; public class ExampleDaoGenerator { public static void main(String[] args) throws IOException, Exception { Schema schema = new Schema(1, "de.greenrobot.daoexample"); addNote(schema); new DaoGenerator().generateAll(schema, "E:\\DaoExample\\src-gen"); } private static void addNote(Schema schema) { Entity news = schema.addEntity("News");
news.addStringProperty("author");
news.addStringProperty("content");
news.addStringProperty("id");
news.addStringProperty("img");
news.addStringProperty("pagetag");
news.addStringProperty("time");
news.addStringProperty("title");
}
}
首先
Schema schema = new Schema(1, "de.greenrobot.daoexample"); 是必须要有的,这个视需要建立实体类要用到的,
两个参数 第一个是一个 版本,也就是说我们的SQLite数据库版本,后期如果需要数据库升级,就需要这个参数.
第二个是一个 路径,也就是你运行完这段代码后,生成的 .java 文件放在的地方.
方法addNote() 是添加实体类用的,你希望生成的实体类里面都有什么属性,这个需要自己去加入,属性的类型也很全面
Entity news = schema.addEntity("News");
会生成一个 News.java文件和NewsDao.java文件,NewsDao.java文件里面封装好了对数据库的操作
new DaoGenerator().generateAll(schema, "E:\\DaoExample\\src-gen");
第二个参数是你希望生成的文件存放在哪里.这个路径需要使用者事先去建好,否则会报异常.
最后生成的文件除了两个必要的.java文件,还有就是 你的实体类和实体类的Dao.
4、最好将这几个.java文件考到你的android工程里面就可以使用了,android里面也需要一个jar包去支持,别忘了导入进去。(没有得网上可以下载)
5、为了防止我们总是去创建session,官方推荐我们将session的生成放到application中,然后我们可以用get方法去获得
public class MyApplication extends Application { private DaoMaster.DevOpenHelper helper;
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession; @Override
public void onCreate() { helper = new DaoMaster.DevOpenHelper(this,"News_info-db",null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
}
6、插入操作也很简单
private News news;
private NewsDao newsDao; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news_info);
getSupportActionBar().hide(); newsDao = MyApplication.getMyApplocation().getDaoSession().getNewsDao(); //拿到这么个工具dao newsDao.insert(news); //插入到数据库 }
若是第一次插入,则会创建一个表 表名就是类名,字段名就是属性名,这个表就是专门放News实体类的
7、其他操作请自行搜索,或者看官方文档
Android greenDao的简单配置和使用的更多相关文章
- Android greenDAO 数据库 简单学习之基本使用
看网上对greenDAO介绍的不错,今天就动手来试一把,看看好不好使. greenDAO 官方网站:http://greendao-orm.com/ 代码托管地址:https://github.com ...
- 在Android Studio进行“简单配置”单元测试(Android Junit)
起因 在Android studio 刚出.本人就想弄单元测试,可惜当时Android studio不知道抽什么风(准确来说,应该是我不会弄而已).无法执行到相应的代码.后来今天突然自己又抽风.又想去 ...
- Android Studio开发环境配置以及相关说明
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...
- Android NDK r9的配置与使用
Android NDK 配置: 网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享. 要玩NDK,你或多或少要用到以下一些东西,所以先做一 ...
- Android Studio经常使用配置及使用技巧(二)
在<Android Studio经常使用配置及使用技巧(一)>中具体描写叙述了Android Studio的project结构和打开开源project的一些配置方法.本篇将从我个人的使用情 ...
- Android Studio NDK环境配置
本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123 并添加自己的实践: ...
- IDA 调试 Android 方法及简单的脱壳实现
IDA 调试 Android 方法及简单的脱壳实现 标签: android原创逆向调试dalvik 2016-05-24 14:24 9286人阅读 评论(3) 收藏 举报 分类: 原创(25) An ...
- 初次使用Android Studio时的配置
一.第一次安装: Android Studio安装完毕后,第一次启动AS前.为了避免又一次下载新版本号的SDK.操作例如以下: AS启动前.请先将bin文件夹的idea.properties文件里添加 ...
- Gradle在Android中的简单使用
Gradle在Android中简单的使用 还望支持个人博客站:http://www.enjoytoday.cn Android Studio 使用gradle进行工程构建,为了更好的了解整个andro ...
随机推荐
- qemu-kvm和openvswitch安装部署-qemu-kvm和openvswitch原型环境部署和基本测试 (1)
qemu-kvm和openvswitch安装部署 本文包含两个部分: qemu-kvm的安装部署 openvswitch的安装部署 参考文档: kvm官网:http://www.linux-kvm.o ...
- Oracle 删表前验证表名是否存在并且删除
DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableN ...
- Card objects
There are fifty-two cards in a deck, each of which belongs to one of four suits and one of thirteen ...
- ndk-gdb 对java/native code联合调试(升级版)
之前写过一篇 关于android native 开发,调试的文章(http://www.cnblogs.com/yaozhongxiao/archive/2012/03/13/2393959.html ...
- Linux下搭建Lotus Domino集群
Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...
- iOS iOS7 20px 处理
- (void)viewWillAppear:(BOOL)animated { // View defaults to full size. If you want to customize the ...
- openresty入门12 openresty php 整合
利用 openresty 的 drizzle-nginx-module模块 读取数据 传递到 php后端 利用到 openresty 的并发,无阻塞,mysql连接池,memcache|redis ...
- C语言文法 改
<程序> -> <外部声明> | <程序> <外部声明> <外部声明> -> <函数定义> | &l ...
- 理解DOM中的事件流
浏览器发展到第四代时(IE4和Netscape Communicator 4),浏览器团队遇到一个很有意思的问题:页面的哪一部分会拥有特定的事件?想象下在一张纸上有一组同心圆,如果你把手指放在圆心上, ...
- C# 通过this关键字来扩展方法
好处:不需要继承,对现有类型进行扩展 public static class ExtString { public static string myTest(this String str) { re ...