2011-05-19 192 views
2

什麼被認爲是處理數據庫連接的最佳實踐? (我忽略了DatabaseHelper類中的構造函數和onUpgrade方法)這些只是我在互聯網上找到的兩種方式,也許你有更好的處理方式?我很想聽到。Android數據庫連接最佳實踐

選項1

public class DatabaseManager { 

private SQLiteDatabase mDb; 

public DatabaseManager(Context context) { 

    DatabaseHelper helper = new DatabaseHelper(context); 
    helper.getWritableDatabase(); 
} 

// ... methods that use mDb 

private class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     mDb = db; 
     //create database 
    } 

    @Override 
    public void onOpen(SQLiteDatabase db) { 

     mDb = db; 
    } 
} 

}

選項2

public class DatabaseManager { 

private DatabaseHelper mDbHelper; 

public DatabaseManager(Context context) { 

    mDbHelper = new DatabaseHelper(context); 
} 

// ... methods that fetch the db 

private void sampleMethod() { 
    SQLiteDatabase db = mDbHelper.getWritableDatabase(); 
    //do stuff with database 
    mDbHelper.close(); 
} 

private static class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     //create database 
    } 
} 

}

而且,是它需要調用close()每次你選擇2中使用的數據庫?至於使用選項1,我猜你需要在應用程序的onDestroy被調用時調用close()方法?

回答

1

我曾擔心這一切,但最近我開始使用ORMLite。這是一個非常輕的ORM與Android庫,並節省您擔心這種東西。

我會說這很快就會成爲最佳實踐,因爲它在處理數據庫時會消除大量重複的代碼。它也會定期更新,維護人員會很快響應查詢。