簡體   English   中英

Android數據庫連接最佳實踐

[英]Android database connection best practice

什么是處理數據庫連接的最佳實踐? (我省略了DatabaseHelper類中的構造函數和onUpgrade方法)這只是我在Internet上找到的兩種方法,也許您有更好的處理方法? 我很想聽聽。

選項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
   }
}

}

此外,是否每次使用選項2中的數據庫都需要調用close()? 至於使用選項1,我猜您需要在調用應用程序的onDestroy時調用close()嗎?

我曾經為此擔心,但是最近我開始使用ORMLite 這是帶有Android庫的非常輕巧的ORM,省去了您為此類問題而煩惱的麻煩。

我要說的是,這很快將成為最佳實踐,因為它在處理數據庫時消除了很多重復的代碼。 它還會定期進行更新,維護人員會非常迅速地響應查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM