1. 程式人生 > >Android使用GreenDao連線資料庫

Android使用GreenDao連線資料庫

安卓中對SQLite的操作,如果不借助工具類的話很容易出錯,比如SQL語句不規範(少個空格是很經常的事),而藉助一些工具類能很明顯的提升程式設計效率。GreenDao是一個很好的開源工具。用法如下:
1.在eclipse下新建一個java project,在專案中新建名為lib的package,在lib中匯入兩個jar包:freemarker.jar和greendao-generator-2.0.0.jar(先複製到lib目錄下,然後右鍵lib,選擇build path-->configure build path,在libraries一欄點選add jars,選擇拷貝好的兩個jar包點選ok)
2.在專案下新建測試類:GreenDaoTest,寫入如下程式碼:
import java.io.IOException;

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;


public class GreenDaoTest {
    public static void main(String[] args) {
        Schema schema=new Schema(1,"com.example.ygd.jreduch08"
); addUser(schema); try { new DaoGenerator().generateAll(schema, "D:\\GreenDaoSrc"); //建立任意資料夾並將資料夾位置寫到這 } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static void
addUser(Schema schema){ Entity entity=schema.addEntity("User"); //實體類的java檔案 entity.setTableName("user"); //表名 entity.addIdProperty().primaryKey().autoincrement(); entity.addStringProperty("name"); //屬性 entity.addStringProperty("pwd"); entity.addStringProperty("age"); entity.addStringProperty("imgUrl"); } }
執行該程式,得到如下結果:
![這裡寫圖片描述](https://img-blog.csdn.net/20160428155305614)
在剛才新建的資料夾下找到建好的四個檔案,複製到android studio
的dao目錄下(沒有則新建)
然後,在android studio中導包,先拷到libs目錄下,在點選新增依賴項,選擇第二項 File Dependency。導完如下圖:
![這裡寫圖片描述](https://img-blog.csdn.net/20160428164951371)
在Activity中呼叫:
userDao= MyApplication.getInstance().getDaoSession(this).getUserDao();

然後重寫application,新建一個application的包,然後在下面新建一個MyApplication.class,程式碼如下:

package com.example.ygd.jreduch08.application;

import android.app.Application;
import android.content.Context;

import com.example.ygd.jreduch08.dao.DaoMaster;
import com.example.ygd.jreduch08.dao.DaoSession;

public class MyApplication extends Application {
    private DaoSession daoSession;
    private DaoMaster daoMaster;
    //Application例項物件
    private static MyApplication instance;

    @Override
    public void onCreate() {
        super.onCreate();
        instance=this;
    }
    public static MyApplication getInstance(){
        return instance;
    }
    public DaoMaster getDaoMaster(Context context){
        if(daoMaster==null){
            DaoMaster.OpenHelper helper=new DaoMaster.DevOpenHelper(context,"MyDbTest.db",null);
            daoMaster=new DaoMaster(helper.getWritableDatabase());
        }
        return daoMaster;
    }

    public DaoSession getDaoSession(Context context){
        if(daoSession==null){
            if(daoSession==null){
                daoMaster=getDaoMaster(context);
            }
            daoSession=daoMaster.newSession();
        }
        return daoSession;
    }

}

在清單檔案中將application的名字設定為剛才重寫的方法。

然後就可以使用GreenDao提供的各種工具了。
(如果要升級資料庫的話,也是要在eclipse中操作,重新生成那四個檔案,然後再拷貝過去)