在管理上面很麻煩,而且相關程式不是很好維護(也可能是程式沒寫好啦XD),
基於上述原因,在一次機會碰到了greenDao,剛好有時間,所以就花了點時間來研究
以下是簡單的使用說明
greendao 的相關sourceCode可以在https://github.com/greenrobot/greenDAO 下載
假設有freemarker錯誤可以再下載 http://freemarker.org/freemarkerdownload.html 最新版本
在解掉相關的build error之後
首先先看看DaoExampleGenerator
這是個方便我們建立DB相關class的project
以上是自定義的table,不需要像以前建table需要龐大的程式碼,而且寫好之後只需要build該project他就會將相關的class build到 src-gen的資料夾底下
接著在我們的project裡面只需要做簡單的設定
private SQLiteDatabase db; private DaoMaster daoMaster; private DaoSession daoSession; private MyDBDao mydbDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db", null); db = helper.getWritableDatabase(); daoMaster = new DaoMaster(db); daoSession = daoMaster.newSession(); mydbDao = daoSession.getMyDBDao();
這樣db建立就完成了,接著示範簡單的insert 和 query
String noteText = editText.getText().toString(); double id = Double.parseDouble(noteText); String noteText2 = editText2.getText().toString(); double id2 = Double.parseDouble(noteText2); editText.setText(""); editText2.setText(""); MyDB note = new MyDB(null, id, id2, Math.pow(id, 2)+Math.pow(id2, 2)); mydbDao.insert(note);
這樣可以很輕鬆的insert data,如果是要query的話也有提供簡單的method
for(MyDB db :mydbDao.queryBuilder().list()) { Log.d("Ted", db.getLatitude()+" "+db.getLongitude()+" "+db.getDistance()); } Log.d("Ted"," compare"); for(MyDB db :mydbDao.queryBuilder().orderDesc(Properties.Distance).list()) { Log.d("Ted", db.getLatitude()+" "+db.getLongitude()+" "+db.getDistance()); }
GreenDao是蠻方便的,就連我這個sqlite新手也都輕鬆上手,對於單純存資料,做簡單sort動作算是很足夠了。
最後附上sample Code
沒有留言:
張貼留言