greenDAO是个很好用的Android数据库框架
在Module目录中的build.gradle文件中添加
完成上述动作后,接着给项目配置自动生成创建db代码文件的相关参数。
在Module中配置build.gradle参数
@Entity 建立表和实体的对应关系
@Id 建立表主键和类成员变量关系
@Property 建立表字段和类成员变量关系
添加登录界面并且加入登录逻辑(并且将用户保存至数据库)
https://github.com/greenrobot/greenDAO
导入工程
在Project目录的build.gradle文件中添加
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
}
}
在Module目录中的build.gradle文件中添加
apply plugin: 'org.greenrobot.greendao'
dependencies {
compile 'org.greenrobot:greendao:3.2.0'
}
完成上述动作后,接着给项目配置自动生成创建db代码文件的相关参数。
在Module中配置build.gradle参数
defaultConfig {
applicationId "demo.app.android.greendao3xdemo"
versionCode 1
}
greendao {
schemaVersion 1
daoPackage 'demo.app.android.greendao3xdemo.db'
targetGenDir 'src/main/java'
}
greenDAO 2.x需要创建一个java项目来自动生成表对应的实体类,而3.x可以通过注解的方式来自动生成对应的实体类。
到目前为止,2.x和3.x的生成方式各有优缺点。3.x自动生成的实体类使用起来比2.x便捷,2.x的可以定制内容不同的数据库(多Schema)
不过个人感觉3.x还是比2.x好用很多
一般常见应用中都有用户模块,那么这里创建一个User类演示
package demo.app.android.greendao3xdemo.db.model;
@Entity
public class User {
@Id private Long id;
@Property(nameInDb = "USERNAME") private String username;
}
@Entity 建立表和实体的对应关系
@Id 建立表主键和类成员变量关系
@Property 建立表字段和类成员变量关系
之后Build Moudle,会自动生成构造方法、get、set等
此刻Moudle中应该会产生类似如下的目录结构
在具体数据的crud之前,应该预先在全局的applicaiton对象中准备好数据库session对象
public class App extends Application {
private static App instance;
private DaoMaster.OpenHelper dbHelper;
private DaoSession dbSession;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static synchronized App i() {
return instance;
}
public DaoSession getDBSession() {
if (dbSession != null) {
dbSession.clear();
}
if (dbHelper == null) {
dbHelper = new DaoMaster.DevOpenHelper(this, "db_user");
DaoMaster daoMaster = new DaoMaster(dbHelper.getWritableDatabase());
dbSession = daoMaster.newSession();
}
return dbSession;
}
}
添加登录界面并且加入登录逻辑(并且将用户保存至数据库)