https://github.com/greenrobot/greenDAO
GreenDao 介绍:
greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。
1、在app下的build.gradle添加依赖
apply plugin: 'org.greenrobot.greendao'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}
greendao {
schemaVersion 1
daoPackage 'com.example.llele.greenDao.greenDao'
targetGenDir 'src/main/java'
}
greenDao对应标签的含义
schemaVersion: 数据库schema版本,也可以理解为数据库版本号
daoPackage:设置DaoMaster、DaoSession、Dao包名
targetGenDir:设置DaoMaster、DaoSession、Dao目录
2、在dependencies下添加依赖:
//greenDao
compile 'org.greenrobot:greendao:3.0.1'
compile 'org.greenrobot:greendao-generator:3.0.0'
3、然后新建实体类
@Entity
public class SearchHistory{
@Id
private Long id;
private String tags;
}
4、在工具栏build下Rebuild project,就会自动生成greenDao需要的文件
5、下面就可以进行增删改查了
(1)、初始化
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext(), "user-db", null);
DaoMaster daoMaster = new
DaoMaster(devOpenHelper.getWritableDatabase());
DaoSession daoSession = daoMaster.newSession();
SearchHistoryDao mHistoryDao = daoSession.getSearchHistoryDao();
(2)、增
SearchHistory history = new SearchHistory(null,"历史");
mHistoryDao.insert(history);
(3)、删
删除全部
mHistoryDao.deleteAll();
删除部分
SearchHistory search= mHistoryDao.queryBuilder().where(SearchHistory.Properties.Name.eq("历史")).build().unique();
if(search!= null){
mHistoryDao.deleteByKey(search.getId());
}
(4):改
SearchHistory search = mHistoryDao.queryBuilder().where(SearchHistory.Properties.Name.eq("历史")).build().unique();
if(search != null) {
search.setName(newName);
mHistoryDao.update(search );
Toast.makeText(MyApplication.getContext(), "修改成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MyApplication.getContext(), "用户不存在", Toast.LENGTH_SHORT).show();
}
(5):查
List<SearchHistory> userList = mHistoryDao.queryBuilder()
.where(SearchHistoryDao.Properties.Id.notEq(999))
.orderAsc(SearchHistoryDao.Properties.Id)
.limit(20)
.build().list();
for (int i = 0 ; i <userList.size() ; i++){
Log.e("Search","查询到:"+userList.get(position).name);
}