Java-[SQLITE\u BUSY]数据库文件已锁定(数据库已锁定)
我有一个带有mysql连接的java应用程序,但我不得不将我的数据库从mysql传输到sqlite,因为mysql无法嵌入,我有连接,但我在使用该应用程序时遇到了这个异常Java-[SQLITE\u BUSY]数据库文件已锁定(数据库已锁定),java,sqlite,exception,Java,Sqlite,Exception,我有一个带有mysql连接的java应用程序,但我不得不将我的数据库从mysql传输到sqlite,因为mysql无法嵌入,我有连接,但我在使用该应用程序时遇到了这个异常 org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked) 我知道这是一个常见的错误,但我尝试了大多数答案,但都无法解决。问题是我有大约30种不同的方法,包括void类型或return类型,例如下面的2
org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
我知道这是一个常见的错误,但我尝试了大多数答案,但都无法解决。问题是我有大约30种不同的方法,包括void类型或return类型,例如下面的2种;(我稍后在swing应用程序上调用这些方法)
我在开始上课的时候就有这些
private Connection con = null;
private Statement statement = null;
private PreparedStatement preparedstatement = null;
方法,例如
public int lastPlaceProgram(){
String query= "Select * from userprogram where laststayed = 1";
try {
statement = con.createStatement();
ResultSet rs = statement.executeQuery(query);
int programid = 0;
while(rs.next()){
programid = rs.getInt("programid");
}
return programid;
} catch (SQLException ex) {
Logger.getLogger(Operations.class.getName()).log(Level.SEVERE, null, ex);
return 0;
}
}
或
和建造商
public Operations() {
String url = "jdbc:sqlite:C://Users//Me//Desktop//sqlited/trying.db";
try {
con = DriverManager.getConnection(url);
} catch (SQLException ex) {
Logger.getLogger(Operations.class.getName()).log(Level.SEVERE, null, ex);
}
}
我尝试将这些finally块添加到我所有30个方法的after-catch块中
finally{
try{
con.close();
} catch(Exception e){
}
}
但它没有工作,它给了连接是关闭错误的这一次。我还尝试添加preparedstatement.close();到这个finally块,但仍然不起作用。finally块对我不起作用,如果我有那个变量要关闭,我就手动关闭它们。我的意思是,如果我在一个方法中使用ResultSet和PreparedStatement,那么我在catch或return之前生成了rs.close()和PreparedStatement.close()。如果我在方法上有Preparedstatement变量,那么我就在catch块或return之前执行Preparedstatement.close()。最后,如果要关闭该变量,块对我不起作用,我会手动关闭它们。我的意思是,如果我在一个方法中使用ResultSet和PreparedStatement,那么我在catch或return之前生成了rs.close()和PreparedStatement.close()。如果我在方法上有Preparedstatement变量,那么我只在catch块或return之前执行Preparedstatement.close()
finally{
try{
con.close();
} catch(Exception e){
}
}