Sqlite数据库连接正在关闭我

时间:2013-05-07 14:32:20

标签: java sqlite database-connection

我的Web服务中有一个数据库适配器,在创建时会打开与Sqlite数据库的连接:

public DatabaseAdapterJava(Database database)
{           
   try 
   {
      exceptionController = new ExceptionControllerJava();

      // establish a connection to the database
      Class.forName(database.getDatabaseClass());
      conn = DriverManager.getConnection(database.getDatabasePath());
      conn.setAutoCommit(true);
   }
   catch(ClassNotFoundException e)
   {
      exceptionController.logException(this.toString(), "DatabaseAdapterSqlite", e.getMessage(), false);
   }
   catch(SQLException e)
   {
      exceptionController.logException(this.toString(), "DatabaseAdapterSqlite", e.getMessage(), false);
   }                
}

这很有效,或者至少它确实如此。然而,最近我在第二个调用数据库之后开始获取空连接异常。

例如:

int user_id = dbadapter.createUser(user);

//do something...

int user_records_affected = dbadapter.updateUser(user);

然后,当执行到数据库的下一个语句时,连接将关闭:

int other_id = dbadapter.createLogRecord(log);

在未经我明确同意的情况下,数据库连接似乎正在关闭。

我可以做些什么来导致连接关闭?

create和update方法只是组装一个字符串sql语句,该语句将传递给:

@Override
public boolean executeSQL(String sql) {

    try{

        cm = conn.createStatement();
        cm.execute(sql);            

        return true;                    

    }catch(SQLException e){
        ExceptionMessage = "SQLException: "+e.getMessage();
        return false;
    }catch(Exception e){
        **ExceptionMessage = "Exception: "+e.getMessage();**
        return false;
    }


}

我突出显示了返回的异常路径:

  

ExceptionMessage = Exception:Null

0 个答案:

没有答案