这并不是太大的麻烦,但有一个错误,我一直从更新从用户点击一个按钮。
最初在MySQL中,这是一个枚举(‘Y’,'N')值,但是由于SQLite不使用枚举或布尔值,所以我决定分别使用带有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");它会产生以下错误:
数据库锁定在cigarDiary.buttonBar$ButtonHandler.actionPerformed(buttonBar.java:207) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source的org.sqlite.DB.execute(DB.java:270) at org.sqlite.DB.executeUpdate(DB.java:281) mysql humi error humiNoS = at org.sqlite.Stmt.executeUpdate(Stmt.java:103)( javax.swing.AbstractButton$Handler.actionPerformed(Unknown来源)( javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) ()
发布于 2011-10-05 10:17:30
好的,我解决这个问题的方法是在使用完每个ResultSet (rs.close)和Connection (con.close)之后关闭它。这是MySql似乎不介意的事情,但SQLite介意。当结果集及其连接仍处于打开状态时,它将不允许您执行更新。
https://stackoverflow.com/questions/7633330
复制相似问题