GreenDao简单了解

来源:互联网 发布:淘宝直通车规则 编辑:程序博客网 时间:2024/06/06 19:44
greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。

关于greenDAO的概念可以看官网greenDAO

greenDAO 优势

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

一、导包

在当前项目的build 中导入

compile'org.greenrobot:greendao:3.0.1'compile'org.greenrobot:greendao-generator:3.0.0'
apply plugin: 'org.greenrobot.greendao'
greendao {    schemaVersion 1//这里是版本    daoPackage 'com.anye.greendao.gen'//这里是放置的包 可以换成自己的    targetGenDir 'src/main/java'}
在整个工程的build 中 将信息补全

buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' }}
补全后的build是这样的
buildscript {    repositories {        jcenter()        mavenCentral()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.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    }}
创建一个user类
@Entitypublic class User {
    
autoincrement 是设置主键是否自增    
@Id(autoincrement = true) public Long id; public String name; public String sex; private int age;
}
编译以后会生成三个类
开始写代码 
初始化与数据库相关的东西

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "recluse-db", null); SQLiteDatabase db = helper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); DaoSession daoSession = daoMaster.newSession(); userDao = daoSession.getUserDao();
//调用数据库查询器QueryBuilder qb = mUserDao.queryBuilder();//查询输入的id是否在数据库中存在ArrayList<User> list = (ArrayList<User>) qb.where(UserDao.Properties.Id.eq(id)).list();//判断,如果大于0 证明输入id存在if (list.size() > 0) {    Toast.makeText(MainActivity.this, "主键重复", Toast.LENGTH_SHORT).show();} else {    //不存在时 向数据库添加数据    mUserDao.insert(new User(Long.valueOf(id), name,sex,Integer.parseInt(age)));}

//删除指定id 的数据
mUserDao.deleteByKey(Long.valueOf(id));
//删除全部
mUserDao.deleteAll();

查询全部
List<User> users = mUserDao.loadAll();

其他正在学习,会不断更新,优化这篇博客