问题是没有判断,直接用也不行呀! String sql="DELETE FROM qx where qx_yonghuming='"+d_first+'"'; 是不是javabean有问题?
你不要使用executeUpdate(sql)函数,直接使用execute(sql)函数试一下!~
String sql="DELETE FROM qx where qx_yonghuming='"+d_first+'"'; 引号错了。改成: String sql="DELETE FROM qx where qx_yonghuming='"+d_first+"'"; 提问题要把出错的提示列出来,这样别人帮你找错误才会快,才会准确。
直接试应该没问题,但我就是想试一下我用的javabean有无问题?
你应该再写一个方法去提交Delete语句,在class ConnOracle类中修改方法public int executeUpdate(String sql);改为: public int executeUpdate(String sql){ int result=0; try{ connect=DriverManager.getConnection("jdbc:odbc:quanxian","system","pass"); Statement stmt=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); result=stmt.executeUpdate(sql); connect.commit();//新增加的语句 } catch(SQLException ex){ connect.rollback();//新增加的语句 System.err.println(ex.getMessage()); } return result; } return result; }
因为d_first和d_second是两个不同的String,它们用==比较总是false。所以你的delete语句总是没有执行。
你可以用eqauls来判断:
if(d_first.trim().equals(d_second.trim())){
}
String sql="DELETE FROM qx where qx_yonghuming='"+d_first+'"';
是不是javabean有问题?
引号错了。改成:
String sql="DELETE FROM qx where qx_yonghuming='"+d_first+"'"; 提问题要把出错的提示列出来,这样别人帮你找错误才会快,才会准确。
public int executeUpdate(String sql){
int result=0;
try{
connect=DriverManager.getConnection("jdbc:odbc:quanxian","system","pass");
Statement stmt=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result=stmt.executeUpdate(sql);
connect.commit();//新增加的语句
}
catch(SQLException ex){
connect.rollback();//新增加的语句
System.err.println(ex.getMessage());
}
return result;
} return result;
}
2.用execute(sql);主要是把sql打印出来,看看拼接是否正确,然后复制在数据库中是否能运行
为什么connect.rollback();//新增加的语句报错?
有这个东西吗?
忘记了。。
改成:
String sql="DELETE FROM qx where qx_yonghuming='"+d_first+"'";