Android语句Sqlite游标



我有这样的源代码:

if (proses == 3) {
    HistoryConnector dbkonek = new HistoryConnector(this);
    dbkonek.open();
    //CURSOR air
    cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
    cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
    cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
    cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
    cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
    cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
    cursorSumberAir.moveToFirst();
    cursorKegunaanAir.moveToFirst();
    cursorSifatAir.moveToFirst();
    cursorPerlakuanAir.moveToFirst();
    cursorPenyimpananAir.moveToFirst();
    cursorSanitasi.moveToFirst();
} else {  
    DatabaseConnector dbkonek = new DatabaseConnector(this); 
    dbkonek.open();
    //CURSOR air
    cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
    cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
    cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
    cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
    cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
    cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
    cursorSumberAir.moveToFirst();
    cursorKegunaanAir.moveToFirst();
    cursorSifatAir.moveToFirst();
    cursorPerlakuanAir.moveToFirst();
    cursorPenyimpananAir.moveToFirst();
    cursorSanitasi.moveToFirst();
}

我想这样:如果proses == 3然后dbkonek创建新的HistoryConnector。否则dbkonek创建新的DatabaseConnector,我怎么能做到这一点?因为当我像这样创建source时:

if (proses == 3) {
    HistoryConnector dbkonek = new HistoryConnector(this);
    dbkonek.open();
} else {  
    DatabaseConnector dbkonek = new DatabaseConnector(this); 
    dbkonek.open();
}
    //CURSOR air
    cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
    cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
    cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
    cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
    cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
    cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
    cursorSumberAir.moveToFirst();
    cursorKegunaanAir.moveToFirst();
    cursorSifatAir.moveToFirst();
    cursorPerlakuanAir.moveToFirst();
    cursorPenyimpananAir.moveToFirst();
    cursorSanitasi.moveToFirst();

编辑,任何一个连接器像这样:

public class DatabaseConnector {
    private static final String DB_NAME = "DataAssessment.db";
    private SQLiteDatabase database;
    private DatabaseOpenHelper dbOpenHelper;
    public DatabaseConnector(Context context) {
        dbOpenHelper = new DatabaseOpenHelper(context, DB_NAME, null, 1);
    }
}
上面的

源代码,dbkonek无法在游标中检测。如何我可以简单这个源代码。

您的类层次结构必须设计成这样,即HistoryConnectorDatabaseConnector共享一个公共的基类接口,假定称为Connector,它定义了在任何类型的连接器上可用的操作集。然后你只需输入:

Connector dbkonek;
if(proses == 3){
    dbkonek = new HistoryConnector(this);
}else{  
    dbkonek = new DatabaseConnector(this);
}
dbkonek.open();
...

最新更新