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