設置倉庫與插件(Project: build.gradle):這個須要注意是在Project中的gradle文件中設置java
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } }
配置依賴 ( Module:app build.gradle ):這個是在應用App下面的中的gradle文件中設置android
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin dependencies { compile 'org.greenrobot:greendao:3.2.2' // add library compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'//加密庫依賴(數據庫升級時使用) }
好了,這就把GreenDao要使用的包都導入進了。git
(若是不手動設置的話會本身生成在這個目錄中)
接下來設置一下數據生成的目錄:github
greendao { schemaVersion 4//數據庫版本號 daoPackage 'com.min.mygreendao.db.gen'//設置DaoMaster、DaoSession、Dao包名 targetGenDir 'src/main/java'//設置DaoMaster、DaoSession、Dao目錄 //targetGenDirTest:設置生成單元測試目錄 //generateTests:設置自動生成單元測試用例 }
接下來就是獲得DaoSession 對象對數據進行操做。其實操做無非是增刪改查之類的,這些在網上有不少介紹,這裏就不作介紹了。在MySQLiteOpenHelper的第二個參數中能夠傳遞數據庫地址,在開發測試環境的時候能夠放到data目錄中,使用不加密的數據,方便本身查看數據庫。上線時改爲加密數據庫便可。sql
// DaoMaster.DevOpenHelper mHelper = new DaoMaster.DevOpenHelper(this, getDbPath(), null); //第二個參數能夠設置數據庫的地址 MySQLiteOpenHelper mHelper = new MySQLiteOpenHelper(this,getDbPath(),null); // SQLiteDatabase db = mHelper.getWritableDatabase(); //加密 Database db = mHelper.getEncryptedWritableDb("1234"); DaoMaster mDaoMaster = new DaoMaster(db); DaoSession mDaoSession = mDaoMaster.newSession(); UserDao userDao = mDaoSession.getUserDao(); User user=new User(); user.setName("李四"); user.setYear(10); userDao.save(user); List<User> users = userDao.loadAll(); textView.setText(users.get(0).getName());
這倆個類的下載地址這兩個類的下載地址
MigrationHelper這個類主要是進行數據升級使用的。惋惜不是我寫的,而是一個外國大神寫的。若是升級數據庫的話,只須要把GreenDao生成的文件數據添加到這個方法裏面的參數便可。數據庫
/** * Created by Administrator on 2017/9/13. * * @des 數據庫升級 */ public class MySQLiteOpenHelper extends DaoMaster.OpenHelper { public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) { super(context, name, factory); } @Override public void onUpgrade(Database db, int oldVersion, int newVersion) { MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() { @Override public void onCreateAllTables(Database db, boolean ifNotExists) { DaoMaster.createAllTables(db, ifNotExists); } @Override public void onDropAllTables(Database db, boolean ifExists) { DaoMaster.dropAllTables(db, ifExists); } }, UserDao.class,TestDao.class);//, UserDao.class 這裏能夠重複添加文件。 } }
#### 好了,這樣的話GreenDao的不少問題都已經解決了,接下來就讓咱們愉快的在項目中添加這個數據庫包吧。若是使用中有什麼問題能夠給我留言。源代碼下載地址app