Java 从MySQL转换为SQLite时出错

Java 从MySQL转换为SQLite时出错,java,mysql,sqlite,Java,Mysql,Sqlite,这并没有太大的麻烦,但我一直从用户点击按钮的更新中得到一个错误 最初在MySQL中,这是一个enum('Y','N')值,但由于SQLite不使用enum或booleans,所以我决定分别使用1和0的int 如何解决这个问题 if(e.getSource()==boughtB){ String cigName; cigName = Habanos2.selection; String humiString; int humino; Connection

这并没有太大的麻烦,但我一直从用户点击按钮的更新中得到一个错误

最初在MySQL中,这是一个enum('Y','N')值,但由于SQLite不使用enum或booleans,所以我决定分别使用1和0的int

如何解决这个问题

if(e.getSource()==boughtB){
    String cigName;
    cigName = Habanos2.selection;
    String humiString;
    int humino;

    Connection con = null;
    System.out.println(cigName);

    try{
        ResultSet humiRS1 = HabMenu.getGenericRS("select * from cigar where name = '"+cigName+"'"); 
        if(humiRS1.next()){
            humiString = humiRS1.getString("humi_no");

            humino = Integer.parseInt(humiString);
            System.out.println("humino"+humino);

            Class.forName("org.sqlite.JDBC").newInstance();

            con = DriverManager.getConnection("jdbc:sqlite:cigardb.db");
            Statement s = con.createStatement();
            humino++;
            String humiNoS = Integer.toString(humino);
            s.executeUpdate("update cigar set humi = 1 where name ='"+cigName+"'" );
            s.executeUpdate("update cigar set humi_no = "+humiNoS+"where name ='"+cigName+"'");

            Habanos2Frame.myHumi.setText("");
            ResultSet humiii = HabMenu.getGenericRS("select * from cigar where humi = 1");
它会产生以下错误:

java.sql.SQLException:数据库已锁定 位于org.sqlite.DB.execute(DB.java:270) 位于org.sqlite.DB.executeUpdate(DB.java:281) mysql-humi错误humiNoS= 位于org.sqlite.Stmt.executeUpdate(Stmt.java:103) 在cigarDiary.buttonBar$ButtonHandler.actionPerformed(buttonBar.java:207) 在javax.swing.AbstractButton.fireActionPerformed(未知源) 位于javax.swing.AbstractButton$Handler.actionPerformed(未知源) 在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)


我解决这个问题的方法是在使用完每个结果集(rs.close)和连接(con.close)后关闭它们。这是MySql似乎不介意的事情,但SQLite介意。当resultset及其连接仍处于打开状态时,它不允许您执行更新。

您是否尝试过从命令行打开DB?如果数据库未正确关闭,它将保持锁定状态,这可能是您出现错误的原因。检查其他问题:。您可能想阅读关于锁定的SQLite文档:谢谢,我认为uve让我走上了正确的轨道!