在android中打开和关闭数据库连接?

时间:2016-06-01 07:53:01

标签: android sqlite

我搜索了很多问题,但我没有得到正确答案。 在活动生命周期中打开和关闭数据库的最佳方法是什么。 请有人帮我正确回答。

提前致谢。

2 个答案:

答案 0 :(得分:3)

使用db=DatabaseHelper.getInstance(context)使用Singleton模式和访问权限。 它保证在整个应用程序生命周期中只存在一个数据库帮助程序。

public class DatabaseHelper extends SQLiteOpenHelper { 

  private static DatabaseHelper sInstance;

  private static final String DATABASE_NAME = "database_name";
  private static final String DATABASE_TABLE = "table_name";
  private static final int DATABASE_VERSION = 1;

  public static synchronized DatabaseHelper getInstance(Context context) {

    // Use the application context, which will ensure that you 
    // don't accidentally leak an Activity's context.
    if (sInstance == null) {
      sInstance = new DatabaseHelper(context.getApplicationContext());
    }
    return sInstance;
  }

  /**
   * Constructor should be private to prevent direct instantiation.
   * make call to static method "getInstance()" instead.
   */
  private DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
}

使用以下方式访问:

db=DatabaseHelper.getInstance(this);

如果需要,您还可以在catch块中关闭数据库连接。 我希望它有所帮助。

答案 1 :(得分:1)

您可以像这样打开数据库

public void openDataBase() throws SQLException {
        String myPath = DB_PATH + DB_NAME;
        myDataBase = SQLiteDatabase.openDatabase(myPath, null,
                SQLiteDatabase.OPEN_READWRITE);
        }

关闭数据库

 public synchronized void close() {
        if (myDataBase != null)
            myDataBase.close();
        //you need to extend the class with SQLiteOpenHelper
         super.close();
    }