#GreenDao的使用
一、在project build.grade中添加:
dependencies {
......
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
二、在app build.grade中添加:
......
apply plugin: 'org.greenrobot.greendao'
android {
......
greendao {
schemaVersion 1 //版本
daoPackage 'dao' // 一般为app包名+生成文件的文件夹名
targetGenDir 'src/main/java' //生成文件路径
}
}
dependencies {
......
implementation 'org.greenrobot:greendao:3.2.2'
implementation 'org.greenrobot:greendao-generator:3.2.2'
}
三、创建Dao类(以下为示例):
@Entity //必须添加
public class Student {
@Id //标志为主键
private Long id;
private String name;
private String sex;
}
四、创建好Dao类(其成员变量对应着表的各个属性)后,点击build,对项目进行构建,这时将生成一个第二步骤路径的dao文件夹:
dao文件夹中包含:
DaoMaster.class
DaoSession.class
StudentDao.class //由第三步骤中创建的Dao类决定
五、创建Application的子类,实现整个程序生命周期Context的获取:
public class MApplication extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext=this;
}
public static Context getContext() {
return mContext;
}
}
六、在AndroidMainifest.xml中注册MApplication:
<application
android:name=".MApplication"
......
</application>
七、创建数据库管理类、数据库帮助类:
//数据库帮助类
public class DatabaseHelper extends DaoMaster.OpenHelper {
public DatabaseHelper(Context context, String name) {
super(context, name);
}
@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
MigrationHelper.getInstance().migrate(db, StudentDao.class);
}
}
//数据库管理类
//这里也可以学习一些单例模式的知识
public class DatabaseManager {
private static DatabaseManager databaseManager;
private static DatabaseHelper databaseHelper;
private static DaoMaster daoMaster;
private static DaoSession daoSession;
public static DatabaseManager getInstance() {
if(databaseManager==null) {
synchronized (DatabaseManager.class) {
if(databaseManager==null) {
databaseManager=new DatabaseManager();
}
}
}
return databaseManager;
}
public static DatabaseHelper getDatabaseHelper() {
if(databaseHelper==null) {
synchronized (DatabaseHelper.class) {
if(databaseHelper==null) {
databaseHelper=new DatabaseHelper(MApplication.getContext(),"Student.db");
}
}
}