参考网址:http://greenrobot.org/greendao/documentation/how-to-get-started/
github:https://github.com/greenrobot/greenDAO
http://www.tuicool.com/articles/63I3EfB
1.集成greendao:
根目录build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
}
app的build.gradle
apply plugin: 'org.greenrobot.greendao'
dependencies {
compile 'org.greenrobot:greendao:3.0.1'
}
配置自动生成dao路径
greendao {
schemaVersion 1
daoPackage 'com.swntek.czm.easycardbusiness.dao'//包路径
targetGenDir 'src/main/java' //生成目录路径
}
然后makeproject 就配置好了
2. 新建实体类
@Entity
public class Student {
@Id(autoincrement = true)
private Long id;
private String name;
@Generated(hash = 1097502469)
public Student(Long id, String name) {
this.id = id;
this.name = name;
}
@Generated(hash = 1556870573)
public Student() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
编译后会在配置包下生成 对应3个文件
3.编写manager管理
public class StudentDbManager {
private final static String dbName = "student_db";
private static StudentDbManager mInstance;
private DaoMaster.DevOpenHelper openHelper;
private DaoMaster daoMaster;
private Context context;
public StudentDbManager(Context context) {
this.context = context;
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
daoMaster = new DaoMaster(getWritableDatabase());
}
public static StudentDbManager getInstance(Context context) {
if (mInstance == null) {
synchronized (StudentDbManager.class) {
if (mInstance == null) {
mInstance = new StudentDbManager(context);
}
}
}
return mInstance;
}
/**
* 获取可读数据库
*/
public SQLiteDatabase getReadableDatabase() {
if (openHelper == null) {
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
}
SQLiteDatabase db = openHelper.getReadableDatabase();
return db;
}
/**
* 获取可写数据库
*/
public SQLiteDatabase getWritableDatabase() {
if (openHelper == null) {
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
}
SQLiteDatabase db = openHelper.getWritableDatabase();
return db;
}
public StudentDao getDao(){
DaoSession daoSession = daoMaster.newSession();
StudentDao userDao = daoSession.getStudentDao();
return userDao;
}
/**
* 插入一条记录
*/
public void insertUser(Student student) {
StudentDao dao=getDao();
dao.insert(student);
}
/**
* 查询
*/
public List<Student> query(){
QueryBuilder<Student> qb = getDao().queryBuilder();
List<Student> list = qb.list();
return list;
}
}
...方法
4.测试
public void testgreendaoinsert(){
Student student = new Student();
student.setName("aa");
StudentDbManager.getInstance(getApplicationContext()).insertUser(student);
}
public void testgreendaoquery(){
List<Student> students = StudentDbManager.getInstance(getApplicationContext()).query();
Log.e("tagg",students.size()+"");
}