下面的代码如果执行蓝色部分,就不能更新,这是为何? DB是postgreSQL
public String execute() throws Exception {
// TODO Auto-generated method stub
Connection con = null;
PreparedStatement ps=null;
con=DbConn.getCon();
//String sql="update model set JHzynv=?,ZHzynv=?,bzgs=? where model=?";
String sql="update model set JHzynv="+Double.valueOf(JHzynv)+",ZHzynv="+Double.valueOf(ZHzynv)+",bzgs="+Double.valueOf(bzgs)+" where model='"+model+"'";
try {
ps=con.prepareStatement(sql);
//System.out.println(model+" "+JHzynv+" "+ZHzynv+" "+bzgs);
/*ps.setDouble(1, Double.valueOf(JHzynv));
ps.setDouble(2, Double.valueOf(ZHzynv));
ps.setDouble(3, Double.valueOf(bzgs));
ps.setString(4, "'"+model+"'"); System.out.println(ps.toString());*/
ps.execute();
if(ps!=null)ps.close();
if(con!=null)con.close();
return "success";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
}
public String execute() throws Exception {
// TODO Auto-generated method stub
Connection con = null;
PreparedStatement ps=null;
con=DbConn.getCon();
//String sql="update model set JHzynv=?,ZHzynv=?,bzgs=? where model=?";
String sql="update model set JHzynv="+Double.valueOf(JHzynv)+",ZHzynv="+Double.valueOf(ZHzynv)+",bzgs="+Double.valueOf(bzgs)+" where model='"+model+"'";
try {
ps=con.prepareStatement(sql);
//System.out.println(model+" "+JHzynv+" "+ZHzynv+" "+bzgs);
/*ps.setDouble(1, Double.valueOf(JHzynv));
ps.setDouble(2, Double.valueOf(ZHzynv));
ps.setDouble(3, Double.valueOf(bzgs));
ps.setString(4, "'"+model+"'"); System.out.println(ps.toString());*/
ps.execute();
if(ps!=null)ps.close();
if(con!=null)con.close();
return "success";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
}
把ps.setString(4, "'"+model+"'"); 改为:ps.setString(4, model);试下
ps.setString(4, model);不行 才变成ps.setString(4, "'"+model+"'");