Android数据库连接最佳实践

时间:2011-05-19 23:38:16

标签: android database database-connection

什么被认为是处理数据库连接的最佳做法? (我省略了DatabaseHelper类中的构造函数和onUpgrade方法)这些只是我在互联网上找到的两种方式,也许你有更好的处理方式?我很乐意听到。

选项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,我猜你需要在调用app的onDestroy时调用close()?

1 个答案:

答案 0 :(得分:1)

我曾经担心这一切,但最近我开始使用ORMLite。它是一个非常轻巧的ORM与Android库,让您担心这种东西。

我想说这很快就会成为最佳实践,因为它在处理数据库时会删除大量重复的代码。它也会定期更新,维护人员会很快响应查询。