if(e.getSource()==((ZiChanLeiBie)jf).tianjia){
try {
String leibie,lei;
leibie=((ZiChanLeiBie)jf).dalei.getSelectedItem().toString();
lei=((ZiChanLeiBie)jf).xiaolei.getSelectedItem().toString();
cn = SqlDrive.qiaojie();
Statement s =cn.createStatement();
ResultSet rs =s.executeQuery("insert into leibieguanli(leibie,mingchen) values('"+leibie+"','"+lei+"')");
JOptionPane.showMessageDialog(jf,"添加成功","提示",1);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(jf,"添加失败,数据库连接错误","提示",3);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(jf,"添加失败","提示",3);
}
}执行结果弹出了第3个提示,添加失败,但是数据库里却添加进去了...
这是为什么啊?
try {
String leibie,lei;
leibie=((ZiChanLeiBie)jf).dalei.getSelectedItem().toString();
lei=((ZiChanLeiBie)jf).xiaolei.getSelectedItem().toString();
cn = SqlDrive.qiaojie();
Statement s =cn.createStatement();
ResultSet rs =s.executeQuery("insert into leibieguanli(leibie,mingchen) values('"+leibie+"','"+lei+"')");
JOptionPane.showMessageDialog(jf,"添加成功","提示",1);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(jf,"添加失败,数据库连接错误","提示",3);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(jf,"添加失败","提示",3);
}
}执行结果弹出了第3个提示,添加失败,但是数据库里却添加进去了...
这是为什么啊?
db.setAutoCommit(false);
并且加上出错后回滚处理,应该就不会提交进去了if(e.getSource()==((ZiChanLeiBie)jf).tianjia){
try {
String leibie,lei;
leibie=((ZiChanLeiBie)jf).dalei.getSelectedItem().toString();
lei=((ZiChanLeiBie)jf).xiaolei.getSelectedItem().toString();
cn = SqlDrive.qiaojie();
Statement s =cn.createStatement();
ResultSet rs =s.executeQuery("insert into leibieguanli(leibie,mingchen) values('"+leibie+"','"+lei+"')");
cn.commit(); JOptionPane.showMessageDialog(jf,"添加成功","提示",1);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(jf,"添加失败,数据库连接错误","提示",3);
} catch (SQLException ex) {
cn.rollback();
JOptionPane.showMessageDialog(jf,"添加失败","提示",3);
}
}
如果SQL语句错误,应该无法添加到数据库呀!
ex.printStackTrace();
stmt.executeQuery(sql);
这个是用于查询语句select的
你这样用虽然也能完成数据库的插入和修改操作,不过会抛出你那个异常,解决办法为:
1、使用查询语句时
ResultSet rs=stmt.executeQuery(sql);
2、进行插入或修改操作时
stmt.executeUpdate(sql);
executeQuery是执行查询和插入的
....
executeUpdate是插入,更新,删除
executeQuery是执行查询和插入的 我们老师说的,还特地叫我们记下来!操的!
Query就是询问 查询的意思
Update校正 更新 也即用于增删改