Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL数据库getWritableDatabase_Java_Sql_Database - Fatal编程技术网

Java SQL数据库getWritableDatabase

Java SQL数据库getWritableDatabase,java,sql,database,Java,Sql,Database,在我的数据库适配器中,我有一个放置数据、升级数据的方法列表 并检索数据。在每种方法中,我都是这样稳定的 SQLiteDatabase db = this.getWritableDatabase(); 我曾经关闭每个方法的数据库,我的应用程序曾经崩溃。然后我用各种方法把它们打开,这样碰撞就停止了 当我对同一行使用多个方法时,代码行是否打开了多个数据库连接 是否有更好的方法打开数据库 这是我的方法之一 public int getAntalRows() throws Exception {

在我的数据库适配器中,我有一个放置数据、升级数据的方法列表 并检索数据。在每种方法中,我都是这样稳定的

SQLiteDatabase db = this.getWritableDatabase();
我曾经关闭每个方法的数据库,我的应用程序曾经崩溃。然后我用各种方法把它们打开,这样碰撞就停止了

当我对同一行使用多个方法时,代码行是否打开了多个数据库连接

是否有更好的方法打开数据库

这是我的方法之一

public int getAntalRows() throws Exception {
    SQLiteDatabase db = this.getWritableDatabase();


    Cursor mCount= db.rawQuery("SELECT COUNT (*) FROM " + TABLE_PRODUCTS, 
    null);
    mCount.moveToFirst();
    int x= mCount.getInt(0);
    mCount.close();
    return x;

}

我想你可以试试数据库连接池api,看看这个链接,你有很多好的链接,我需要阅读这些东西,也许我能找到我需要的。但是我的第一个问题。是否每次调用我的方法时都会打开几个连接?是的,绝对是。几个连接将打开。另一种方法是拥有一个特定于类的连接,只从write方法提交,并在析构函数中关闭。您必须保持状态,即,如果可用的连接已过时且无法执行您想要的操作,则必须重新打开一个新连接。