配置
前阵子操作数据库使用了GreenDao,写这篇的时候也拖了好一段时间,迟迟没有分享出来,下面就自带板凳开始GreenDao的配置和基本使用
-
在as中导入相关的包
在app的gradle文件中配置
apply plugin: 'org.greenrobot.greendao'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
}
greendao {
schemaVersion 1
daoPackage 'com.huang.greendaodemo.gen'
targetGenDir 'src/main/java'
}
schemaVersion :数据库schema版本号,迁移数据、升级数据库等操作会用到 daoPackage:由GreenDao自动生成代码所在的包名
targetGenDir:设置自动生成代码的目录
-
在项目中定义一个实体类
@Entity :定义实体类,默认类名即为表名(这里为user)
@Id :标明主键,括号里可以指定是否自增(注意:要注解为@Id的字段最 好用Long型,笔者当初使用long出现问题,排查将近半盏茶时间)
@NotNull : 不为null
@Unique :唯一约束
@ToMany : 一对多
@OrderBy : 排序
@ToOne : 一对一
@Transient :不会创建到数据库表里 MakeProject
编译项目,User实体类会自动编译,之后会在gen目录下生成这三个文件
使用
- GreenDao使用,首先是实例化GreenDao所需要的几个对象,相关代码如下:
public class BaseApplication extends Application{
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
public static BaseApplication instances;
@Override
public void onCreate() {
super.onCreate();
instances = this;
init();
}
public static BaseApplication getInstances() {
return instances;
}
public void init() {
//数据库的配置
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(instances, "note_db", null);
db = devOpenHelper.getWritableDatabase();
mDaoMaster = new DaoMaster(db);
mDaoSession = mDaoMaster.newSession();
}
public DaoSession getDaoSession() {
return mDaoSession;
}
public SQLiteDatabase getDb() {
return db;
}
}
这里别忘了添加到AndroidManifest.xml里面
获取UserDao对象
private DaoSession mDaoSession;
private UserDao mUserDao;
mDaoSession = BaseApplication.getInstances().getDaoSession();
mUserDao = mDaoSession.getUserDao();
1、增
User mUser = new User();
mUser.setName("hello");
mUser.setText("world");
mUserDao.insert(mUser);
2、删
mUserDao.deleteByKey(id);
3、改
//注意是参数Long
User mUser = new User(1l,"hello","world");
mUserDao.update(mUser);
4、查
List<User> users = mUserDao.loadAll();
项目demo地址:https://github.com/zlhuang/greenDaoDemo
最后,希望这篇文章可以帮助到您,本文有任何问题欢迎指正。