GreenDao

Reference URL:
http://greenrobot.org/greendao/documentation/how-to-get-started/ github: https://github.com/greenrobot/greenDAO

 http://www.tuicool.com/articles/63I3EfB

1. Integrate greendao:

 

root directory build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
    }
}

app's build.gradle

apply plugin: 'org.greenrobot.greendao'

dependencies {
    compile 'org.greenrobot:greendao:3.0.1'
}
configure automatic generation of dao path
greendao {
    schemaVersion 1
    daoPackage 'com.swntek.czm.easycardbusiness.dao'//package path

    targetGenDir 'src/main/java' //Generate directory path
}

Then makeproject is configured

 

2. Create a new entity class

 

@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;
    }
}
 

 After compiling, the corresponding 3 files will be generated under the configuration package

 

3. Write manager management

 

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;
    }
    /**
     * Get a readable database
     */
    public SQLiteDatabase getReadableDatabase() {
        if (openHelper == null) {
            openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
        }
        SQLiteDatabase db = openHelper.getReadableDatabase();
        return db;
    }
    /**
     * Get writable database
     */
    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;
    }
    /**
     * insert a record
     */
    public void insertUser(Student student) {
        StudentDao dao=getDao();
        dao.insert(student);
    }
    /**
     * Inquire
     */
    public List<Student> query(){
        QueryBuilder<Student> qb = getDao().queryBuilder();
        List<Student> list = qb.list();
        return list;
    }
}
...method

 

 

4. Test

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()+"");
    }

 

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326794019&siteId=291194637