GreenDao 3.0的配置及使用

GreenDao是一个优质的开源数据库,每秒支持上千次的增删改查,效率非常高,对比同类开源数据库,稳稳排在第一位,更多详细介绍:https://github.com/greenrobot/greenDAO.

依赖:

compile 'org.greenrobot:greendao:3.2.0'

依赖成功之后需要对数据库进行配置,在3.0之前,需要手动写类来进行配置,到了3.0之后,可以直接在build.gradle文件中配置.

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

apply plugin: 'org.greenrobot.greendao'

//配置数据库,配置版本号即可,其他的只需要保持默认
greendao {
    //数据库版本号
    schemaVersion 1
    //数据库所在包
//    daoPackage 'com.xxxxx_yk.greendaodemo.dao'
    //生成的数据库文件的目录
//    targetGenDir 'src/main/java'
    //自动生成单元测试
//    generateTests true
    //生成的单元测试目录
//    targetGenDirTests
}

全部配置成功之后,建立数据库实体模型

@Entity
public class Student {

    @Id(autoincrement = true)
    private Long _id;

    @Unique
    @NotNull
    @Property(nameInDb = "username")
    private String name;

    @NotNull
    private String age;

    @Transient
    private String info;
}

注解解析:
@Entity 标记该类为数据库实体模型,指示GreendDao生成代码
@Id(autoincrement = true) 配置id自动增长
@Unique 字段约束,保证值唯一
@NotNull 字段不允许为空
@Property(nameInDb = "username") 设置该列名非默认,采用自定义
@Transient 设置该键在数据库中排除

完成创建之后,点击Sync Progect,GeenDao将会自动生成代码,特别注意,不要轻易动自动生成的代码.

Paste_Image.png
DaoMaster:该类保存了数据库对象(SQLiteDatabase).它的内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper的实现.
DaoSession:提供对数据库进行增删改查的方法.
StudentDao:GreenDao对于每个实体生成的类,即配置@Entity之后的类.

初始化核心对象:

public class GreenDaoHelper {

    private static DaoMaster.DevOpenHelper mHelper;
    private static SQLiteDatabase mDb;
    private static DaoMaster mDaoMaster;
    private static DaoSession mDaoSession;

    /**
    * 设置greenDao
    */
    public static void initDatabase() {
        mHelper = new DaoMaster.DevOpenHelper(MyApp.mContext, "student_db", null);
        mDb = mHelper.getWritableDatabase();
        mDaoMaster = new DaoMaster(mDb);
        mDaoSession = mDaoMaster.newSession();
    }

    public static DaoSession getDaoSession() {
        return mDaoSession;
    }
    public static SQLiteDatabase getDb() {
        return mDb;
    }
}

在Appliction中应用

public class MyApp extends Application {

    public static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
        GreenDaoHelper.initDatabase();
    }
}

至此,GreedDao配置完成,接下来就可以进行增删改查了.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //获取数据库对象
    mStudentDao = GreenDaoHelper.getDaoSession().getStudentDao();

    //插入一条数据,传null  id会自增
    mStudentDao.insert(new Student(null,"张三","23"));

    //删除一条数据
    mStudentDao.delete(new Student(null,"张三","23"));

    //根据主键删除一条数据
    mStudentDao.deleteByKey(1L);

    //删除全部数据
    mStudentDao.deleteAll();

    //修改一条数据
    mStudentDao.update(new Student(null,"张三","25"));

    //查询全部数据
    mStudentDao.loadAll();

    //查询一条数据,where中填写条件
    mStudentDao.queryBuilder().where(StudentDao.Properties.Name.eq("张三")).unique();

}

至此,GreenDao应用完毕.

你可能感兴趣的:(GreenDao 3.0的配置及使用)