@ZeroGeek
2016-12-28T07:23:15.000000Z
字数 1818
阅读 788
未分类
主要记录下配置和基本使用
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 1daoPackage 'com.zero.greendaodemo.gen' // 自动生成的代码目录targetGenDir 'src/main/java'}
2.编写实体
例如
@Entitypublic 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;}@Overridepublic 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;@Overrideprotected 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
