GreenDao

参考网址: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()+"");
    }

猜你喜欢

转载自h496950806.iteye.com/blog/2311503