Android开发之——数据库之GreenDao
前言
GreenDao是一个将对象映射到SQLite数据库中的轻量级且快速的ORM解决方案。关于GreenDao的相关信息可以查看官网GreenDao
GreenDao的优势:
- 一个精简的库
- 性能最大化
- 内存开销最小化
- 易于使用的API
- 对Android进行高度优化
GreenDao的配置
GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。
在项目下build.gradle中进行配置
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
在moudle下的单build.gradle中进行配置
compile 'org.greenrobot:greendao:3.2.2' // add library
自定义路径
greendao
{
schemaVersion 1
daoPackage 'com.example.greendaosample.gen'
targetGenDir 'src/main/java'
}
在gradle的根模块中加入上述代码,就完成了我们的基本配置了。
属性介绍:
- schemaVersion:指定数据库schema版本号,迁移等操作会用到
- daoPackage:dao的报名,报名默认是entry所在的包
- targetGenDir:生成数据库文件的目录
创建一个User的实体类
@Entity
public class User
{
@Id
private Long id;
private String name;
@Transient
private int tempUsageCount; // not persisted
}
MakeProject
点击Build->ReBuild Project,等待项目编译完成后,User实体类会自动编译,生成get/set方法并且会在daoPackage目录下生成三个文件
GreenDao的使用
设置DBHelper管理数据库
public class DBHelper
{
private static DaoMaster daoMaster;
private static DaoSession daoSession;
/**
* 取得DaoMaster
* @param context
* @return
*/
public static DaoMaster getDaoMaster(Context context)
{
if (daoMaster == null)
{
DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(context,
"notes.db", null);
daoMaster = new DaoMaster(helper.getWritableDatabase());
}
return daoMaster;
}
/**
* 取得DaoSession
* @param context
* @return
*/
public static DaoSession getDaoSession(Context context)
{
if (daoSession == null)
{
if (daoMaster == null)
{
daoMaster = getDaoMaster(context);
}
daoSession = daoMaster.newSession();
}
return daoSession;
}
}
获取UserDao对象:DBHelper.getDaoSession(this).getUserDao();
简单的增删改查实现
增加数据(保存数据)
user=new User( 1l,"张三");
userDao.insert(user);
删除数据
userDao.deleteByKey(1l);
修改数据(更新数据)
user=new User(2l,"lisi");
userDao.update(user);
查询数据
List<User> users = userDao.loadAll();
GreenDao的表
参考:
GreenDaoSample