您的位置:首页 > 其它

GreenDao的简单使用[一]

2018-02-06 17:48 218 查看
写在前面
在开发的过程中经常会用到数据库Sqlite。之前使用的是第三方的SqliteAssetsHelper,觉得很好用。只需要集成并书写一些必要的方法,提供外部增删改查的方法即可。那么我们今天来看下,另外一个很成熟的第三方-GreenDao。

简介
官网 http://greenrobot.org/greendao/

优势
1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化

集成步骤
第一步  添加依赖
在项目的根目录的build.gradle中添加

buildscript {

repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}


在app目录下的build.gradle中添加

apply plugin: 'org.greenrobot.greendao'

greendao {
schemaVersion 1
daoPackage 'com.wj.greendao.dao'
targetGenDir 'src/main/java'
}
dependencies{
compile'org.greenrobot:greendao:3.0.1'
compile'org.greenrobot:greendao-generator:3.0.0'
}
属性介绍:
 schemaVersion  指定数据库schema版本号,迁移等操作会用到
 daoPackage   dao的包名,包名默认是entity所在的包
 targetGenDir   生成数据库文件的目录,会生成DaoMaster,DaoSession,XXXDao都放在此目录下。

第二步 创建Bean
创建一个Java Bean

@Entity
public class User {
@Id
private Long id;
private String name;
@Transient
private int tempUsageCount;
}


到此基本配置完成。

第三步 编译
点击AS的build->Make Project 项目会自动在指定的目录下生成 这三个文件。



具体使用
一般在Application中进行初始化。

public class MyApplication extends Application {
private static final String DATA_NAME = "user";
private DaoSession session;
private static Context context;

@Override
public void onCreate() {
super.onCreate();
conte
a6ed
xt = this;
setUpDatabase();
}

public static synchronized MyApplication getContext() {
return (MyApplication) context;
}

public void setUpDatabase() {
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, DATA_NAME);
Database database = devOpenHelper.getWritableDb();
DaoMaster daoMaster = new DaoMaster(database);
session = daoMaster.newSession();
}

public DaoSession getSession() {
return session;
}
}

操作

/**
* 增加
*/
private void addUser() {
try {
User user = new User(null, "wj");
MyApplication.getContext().getSession().getUserDao().insert(user);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除
*/
private void deleteUser(){
MyApplication.getContext().getSession().getUserDao().deleteByKey(null);//按照key删除
//        MyApplication.getContext().getSession().getUserDao().deleteAll();//删除所有
//        MyApplication.getContext().getSession().getUserDao().delete();//删除一个bean
}
/**
* 更新数据
*/
private void updateUser(){
//        MyApplication.getContext().getSession().getUserDao().update();
}
/**
* 查询数据
*/
private void searchUser(){
//        User user = MyApplication.getContext().getSession().getUserDao().load(1);
//        List<User> users = MyApplication.getContext().getSession().getUserDao().loadAll();
//        List<User> list = MyApplication.getContext().getSession().getUserDao().queryBuilder().where(UserDao.Properties.Name.eq("")).list();
//        MyApplication.getContext().getSession().getUserDao().queryRaw("wj","");
}

写在后面
简单的集成和操作调用就写到这里。后面有更新学习,再发表[二]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: