讲解使用之前先说说GreenDao
GreenDao相较于同类型的库,性能是最好的
GreenDao可以直接将拿到的数据转变成我们想要使用的对象
GreenDao库大小很小,很精简,优化也很好
一:环境配置
1、在project的build.gradle中配置如下代码:
dependencies {
...
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
2、在module的build.gradle中配置:
apply plugin: 'org.greenrobot.greendao'
android{
...
greendao {
schemaVersion 1 //数据库版本号
daoPackage 'com.tt.green.dao' //自动生成的工具类的包名
targetGenDir 'src/main/java' //生成类的路径
}
}
dependencies {
compile 'org.greenrobot:greendao:3.2.0'
}
二:使用:
1、定义实体类
定义实体类之前介绍一些GreenDao中常用的注解的意思
@Entity -- 实体类,类名上打这个标记就代表这个类是GreenDao所能识别的实体类后面可以跟参数,常用的就是“nameInDb”意思就是指定这个类所对应的表名字,如果不写就默认类名作为表名
@Id -- Id 顾名思义 可以通过autoincrement = true来设置其为自增长主键(这里有个坑,如果想要是自增长主键,必须使用Long 不能是 long)
@Property -- 表中的字段 通过nameInDb来指定字段名,否则以变量名命名
@NotNull -- 该数据不能为空
@Generated -- 构造
@Transient -- 添加次标记之后不会生成数据库表的列
接下来定义实体类User
@Entity(nameInDb = "tablename")
public class User {
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "username")
private String name;
@Property(nameInDb = "age")
private int age;
@Generated
public User() {
}
@Generated
public User(Long id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
}
实体类定义好了,点击Studio的Make Project会帮我们生成GreenDao的相关类
make project.png生成的文件:
生成文件.png2、GreenDao初始化
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "stu", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
mUserDao = daoSession.getUserDao();
初始化好了,之后就使用mUserDao对象来操作数据库,这行代码最好可以在Application中初始化。
3、使用UserDao操作数据库
增
mUserDao.insert(new User(null,"张三",28))
删
//删除单个
mUserDao.delete(new User(null,"张三",28));
//根据id删除
mUserDao.deleteByKey(20L);
//删除全部
mUserDao.deleteAll();
改
mUserDao.update(new User(null,"张三",28));
查
//查询表中name = "user" 的集合
List<User> list=mUserDao.queryBuilder().where(UserDao.Properties.Name.eq("user")).build().list();
//查询表中name = "user" 的唯一数据
User user = mUserDao.queryBuilder().where(UserDao.Properties.Name.eq("user")).build().unique();
这篇博客仅仅是介绍一些简单的操作,GreenDao还可以做很多其他的操作,具体的慢慢发现把。
网友评论