Java 数据库文件已锁定(数据库已锁定)?

Java 数据库文件已锁定(数据库已锁定)?,java,sql,sqlite,Java,Sql,Sqlite,我正在更新、删除和创建日历中的事件。我有很多方法。然而,如果我尝试运行其中任何一个,它会给我SQLITE BUSY错误。我已经关闭了所有方法后的连接。那么问题出在哪里呢?我知道我有太多的联系,但我确实关闭了 public static DatabaseConnection db = new DatabaseConnection(); public static ArrayList<EventModel> retrieveAllInfo() { ArrayList&l

我正在更新、删除和创建日历中的事件。我有很多方法。然而,如果我尝试运行其中任何一个,它会给我SQLITE BUSY错误。我已经关闭了所有方法后的连接。那么问题出在哪里呢?我知道我有太多的联系,但我确实关闭了

    public static DatabaseConnection db = new DatabaseConnection();

public static ArrayList<EventModel> retrieveAllInfo() {
    ArrayList<EventModel> listOfEvents = new ArrayList<EventModel>();

    ResultSet rs = null;

    String dbQuery;

    db.getConnection();
    dbQuery = "SELECT * FROM ToDoList";

    rs = db.readRequest(dbQuery);
    try {
        while (rs.next()) {
            EventModel model = new EventModel(); 
            model.setId(rs.getInt("id"));
            model.setEventName(rs.getString("eventName"));
            model.setDate(rs.getString("day"));
            model.setTime(rs.getString("time"));
            listOfEvents.add(model);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    db.terminate(); 
    return listOfEvents;
}

public static boolean updateEvent(EventModel eventmodel) {
    //declare local variables
    boolean success = false;
    String dbQuery; 
    PreparedStatement pstmt;

    db.getConnection();     

    dbQuery = "UPDATE ToDoList SET eventName = ?, time = ?, day = ? WHERE id = " + eventmodel.getId();
    pstmt = db.getPreparedStatement(dbQuery);

    try {
        pstmt.setString(1, eventmodel.getEventName());
        pstmt.setString(2, eventmodel.getTime());
        pstmt.setString(3, eventmodel.getDate());
        if (pstmt.executeUpdate() == 1)
            success = true;
        pstmt.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

    db.terminate();

    return success;
 }
publicstaticdatabaseconnection db=newdatabaseconnection();
公共静态ArrayList retrieveAllInfo(){
ArrayList listOfEvents=新的ArrayList();
结果集rs=null;
字符串数据库查询;
db.getConnection();
dbQuery=“选择*来自ToDoList”;
rs=db.readRequest(dbQuery);
试一试{
while(rs.next()){
EventModel model=新的EventModel();
model.setId(rs.getInt(“id”);
model.setEventName(rs.getString(“eventName”);
model.setDate(rs.getString(“日”);
model.setTime(rs.getString(“time”);
添加(模型);
}
}捕获(例外e){
e、 printStackTrace();
}
db.terminate();
返回事件列表;
}
公共静态布尔更新事件(EventModel EventModel){
//声明局部变量
布尔成功=假;
字符串数据库查询;
编制报表;
db.getConnection();
dbQuery=“updatetodolist SET eventName=?,time=?,day=?WHERE id=“+eventmodel.getId();
pstmt=db.getPreparedStatement(dbQuery);
试一试{
setString(1,eventmodel.getEventName());
setString(2,eventmodel.getTime());
setString(3,eventmodel.getDate());
如果(pstmt.executeUpdate()==1)
成功=真实;
pstmt.close();
}捕获(例外e){
e、 printStackTrace();
}
db.terminate();
回归成功;
}

可能重复:其他进程锁定了您的数据库。@TimBiegeleisen我可以知道如何检查锁在哪里吗?我以前从未遇到过数据库锁定。那么,可能是另一个Java进程仍在后台运行吗?可能重复:其他进程对您的数据库有锁定。@TimBiegeleisen我可以知道如何检查锁定在哪里吗?我以前从未遇到过数据库锁定。那么,这可能是另一个仍在后台运行的Java进程吗?