您的位置:首页 > 其它

GreenDao3.2.0的配置和简单使用

2017-01-08 21:28 309 查看

配置

前阵子操作数据库使用了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

最后,希望这篇文章可以帮助到您,本文有任何问题欢迎指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: