转载请注明:
http://blog.csdn.net/u012954720/article/details/52963434
greenDAO是一个轻量、快速的ORM解决方案,它将对象映射到SQLite数据库, 是方便我们操作数据库的.
1. 首先 我们需要在gradle中添加 插件和 依赖
// 工程的gradle中
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
}
}
// 模块 的 gradle中
apply plugin: 'org.greenrobot.greendao'
dependencies {
compile 'org.greenrobot:greendao:3.2.0'
}
2. 基本使用
在添加好依赖以及插件之后, 我们接下来就可以使用了.
1. 创建我们要操作的model
例如新建了一个Book, 加上相应的注解.之后greenDAO会帮我们和数据库关联上.
@Entity
public class Book {
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "title")
private String title;
@Property(nameInDb = "author")
private String author;
}
在编译或者运行之后, 会看到会生成 了DaoMaster、DaoSession、BookDao、Book共4个类文件.
2. 生成Daosession
建议在Application中进行数据库的初始化.
public class MyApplication extends Application {
private DaoSession mDaoSession;
@Override
public void onCreate() {
super.onCreate();
DaoMaster.DevOpenHelper openHelper =
new DaoMaster.DevOpenHelper(getApplicationContext(), "myapp.db");
SQLiteDatabase database = openHelper.getWritableDatabase();
// 可以对数据库直接进行加密
// Database db = openHelper.getEncryptedWritableDb("123");
// 数据的管理器 创建
DaoMaster master = new DaoMaster(database);
// 所有的生成的 DAO 对象, 都要从 daoSesion 中取出来
mDaoSession = master.newSession();
}
public DaoSession getDaoSession() {
return mDaoSession;
}
}
注意:
在建立一个Application时, 不要忘记在 清单文件中进行注册
4. MainActivity中对数据库进行 增删改查
public class MainActivity extends AppCompatActivity {
private DaoSession mSession;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication application = (MyApplication) getApplication();
mSession = application.getDaoSession();
// DAO 数据访问对象, 可以操作一个实体类 , BookDao --> Book
BookDao bookDao = mSession.getBookDao();
// 往数据库中添加数据
Book book = new Book();
book.setTitle("7天学会Android");
bookDao.insert(book);
// 从数据库中查找数据
// where 条件, 字段进行运算
// XxxxDao.properties 列, 操作判断
// _id = 9;
QueryBuilder<Book> queryBuilder = bookDao.queryBuilder();
Book unique = queryBuilder.unique();
QueryBuilder<Book> where = queryBuilder.where(BookDao.Properties.Id.eq(1L));
List<Book> list = where.list();
for (Book book1 : list) {
System.out.println(book1.getTitle());
}
// 删除数据
Long id = new Long(1);
bookDao.deleteByKey(id);
List<Book> list2 = where.list();
for (Book book1 : list2) {
System.out.println(book1.getTitle());
}
}
}
源码下载:
greenDAO的官方网址:
http://greenrobot.org/greendao