greenDao是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案,性能很不错。
greenDao的特点
- 精简
- 性能最大化
- 不使用注解,使用code generate
android studio中的使用
1 android工程配置[greendao generator]模块
1 .src/main目录新建一个与java目录同层的java-gen
目录,用于存放由greenDao生成的Bean,Dao,DaoMaster,DaoSession类
2 app的build.gradle添加sourceSets与dependencies
1 | buildTypes{ |
1 | dependencies { |
2 新建greenDao generator模块,纯java工程
1 file->new->new module->java Library->填写包名类名->finish
然后在新工程的build.gradle中添加
1 | dependencies{ |
2 编写【ExampleDaoGenerator】类,注意: 我们的 Java 工程只有一个类,它的内容决定了「GreenDao Generator」的输出,你可以在这个类中通过对象、关系等创建数据库结构,
1 | public class ExampleDaoGenerator { |
3 执行run main函数,生成如图4个文件
在android工程进行数据库操作
1 考虑到application的生命周期,把DaoMaster跟DaoSession的实例放到application中,避免重复创建
1 |
|
2 考虑到松耦合性,新增一个Dao的中间层,用来切换不同的Dao实现
1 | public class NoteDaoMiddle { |
3 响应view层的增删查改操作
新建NoteDaoMiddle实例1
2
3
4
5
6
7
8
9@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
daoSession = MyApplication.getIns().getDaoSession(this);
noteDaoMiddle = new NoteDaoMiddle(this,daoSession);
'''
}
响应add search按钮1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17private void addNote(){
//如果新增为空,弹出
if (TextUtils.isEmpty(editText.getText())){
Toast.makeText(this,"add不能为空",Toast.LENGTH_SHORT);
return;
}
'''
// 插入操作,简单到只要你创建一个 Java 对象
Note note = new Note(null, noteText, comment, new Date());
noteDaoMiddle.add(note);
}
private void search(String title) {
noteDaoMiddle.search(title);
}
通过回调或者接口响应查询结果,并通知listview刷新视图
1 | @Override |