@ZeroGeek
2016-12-28T07:23:15.000000Z
字数 1818
阅读 706
未分类
主要记录下配置和基本使用
1.工程目录的bulid.gradle
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
}
添加插件
apply plugin: 'org.greenrobot.greendao'
添加依赖
compile 'org.greenrobot:greendao:3.2.0'
compile 'org.greenrobot:greendao-generator:3.2.0'
生成代码的配置
greendao {
schemaVersion 1
daoPackage 'com.zero.greendaodemo.gen' // 自动生成的代码目录
targetGenDir 'src/main/java'
}
2.编写实体
例如
@Entity
public class Note {
@Id(autoincrement = true)
private long id;
private String title;
private String content;
// 编译后会自动生成代码
}
自动生成:
DaoMaster,DaoSession,NoteDao
public class App extends Application {
private DaoMaster.DevOpenHelper mHelper;
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
private static App sContext;
public static App getApplication() {
return sContext;
}
@Override
public void onCreate() {
super.onCreate();
sContext = this;
mHelper = new DaoMaster.DevOpenHelper(this, "user-db");
db = mHelper.getWritableDatabase();
mDaoMaster = new DaoMaster(db);
mDaoSession = mDaoMaster.newSession();
}
public DaoSession getDaoSession() {
return mDaoSession;
}
public SQLiteDatabase getDb() {
return db;
}
}
可以封装DaoSeesion为成单例模式获取
public class MainActivity extends AppCompatActivity {
private UserDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dao = App.getApplication().getDaoSession().getUserDao();
for (int i=0; i < 10; i++) {
User user = new User();
user.setName(Integer.toString(i));
dao.insert(user);
}
}
}
通过DaoSession获取对应的Dao进行数据库操作,这里最好异步操作。
编译成功之后系统会帮助我们生成相应的构造方法和get/set方法,并且还会在我们的包下生成DaoMaster和DaoSession