如果Sqlite数据库语句没有关闭会发生什么

时间:2013-10-15 11:03:50

标签: java sqlite

我很想知道,如果我在java中为SQLITE数据库文件创建SQL语句

public Statement GetStatement()
{
  if(connection==null || connection.isClosed())
  {
     connection = DriverManager.getConnection("jdbc:sqlite:"+filePath);  
  }
  return connection.createStatement(); //Connection is private variable of type java.sql.connection
}

此函数返回的此语句用于执行不同场景下的插入,选择,更新SQL,多个读取或多个函数将从数据库中插入,更新或选择。
现在,如果我不关闭语句,则存在内存泄漏的可能性 但是我通过执行select SQL来关闭所有得到的结果集对象 我知道结束陈述是好习惯但如果我不这样做会有什么反作用?

1 个答案:

答案 0 :(得分:0)

SQLite强制对数据库进行顺序写访问(一次一个进程)。这使得在完成任何INSERT或UPDATE操作后关闭数据库连接至关重要。如果不这样做,当您的脚本下一次尝试写入时,您可能会收到“DatabaseObjectNotClosed”异常。更不用说内存泄漏,以及可能的性能下降。