我很想知道,如果我在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来关闭所有得到的结果集对象
我知道结束陈述是好习惯但如果我不这样做会有什么反作用?
答案 0 :(得分:0)
SQLite强制对数据库进行顺序写访问(一次一个进程)。这使得在完成任何INSERT或UPDATE操作后关闭数据库连接至关重要。如果不这样做,当您的脚本下一次尝试写入时,您可能会收到“DatabaseObjectNotClosed”异常。更不用说内存泄漏,以及可能的性能下降。