使用 java 卡住 sqlite 事务

stuck with sqlite transaction using java

try {
    stmt = con.createStatement();
    stmt.getConnection().setAutoCommit(false);
    try {
        for (String q : query) {
            if (q != null && !q.equals("")) {
                  stmt.executeUpdate(q);
            }
        }
        stmt.execute("COMMIT");
        stmt.getConnection().setAutoCommit(true);
        stmt.close();
        JOptionPane.showMessageDialog(frame, "Details Successfully Added.",
         "Information", JOptionPane.INFORMATION_MESSAGE);
    } catch (SQLException ex) {
         System.out.println("Rollback:\n " ex.getMessage());
         stmt.execute("ROLLBACK");
    }
} catch (SQLException ex) {
      JOptionPane.showMessageDialog(frame,ex.getMessage(),
         "Exception Occured", JOptionPane.ERROR_MESSAGE);
}

我已经编写了上面的代码来使用事务插入多条记录,但是当我执行它时,它有时会给我 could not commit no transaction is running,有时会 could not rollback no transaction is active,而记录已成功插入。

因为我是 sqlite 和 java 的新手,我不知道这里的实际问题是什么,请任何人指导我或帮助我实现它 运行..

你不应该打电话吗,

stmt.getConnection().commit() 

而不是

stmt.execute("COMMIT");

我看不到您从哪里开始交易,这也是两条错误消息所指示的。尝试

stmt.execute("BEGIN");

在第 3 行开始交易。