2

我很想知道,如果我在 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 获得的所有结果集对象。
我知道关闭陈述是一种很好的做法,但如果我不这样做会产生什么反效果?

4

1 回答 1

0

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

于 2013-10-15T11:16:48.457 回答