-1

Netbeans を使用してテーブルのフィールドを更新しようとしています。更新ステートメントは次のとおりです。

String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/student_reg"; 
try { 
Class.forName(driver); 
Connection con = DriverManager.getConnection(url,"user","abc"); 
PreparedStatement state = con.prepareStatement("UPDATE supplier SET sname='" + txtname.getText()+"' , add='"+txtadd.getText()+"' WHERE sid ='" +txtid.getText() + "'"); 
state.executeUpdate(); 
JOptionPane.showMessageDialog(null, "Your Record sucessfully Updated"); 
}catch (Exception ex) { 
JOptionPane.showMessageDialog(null, ex);
}

しかし、私は次のエラーが発生しています:

com.mysql.jdbc.exceptions.jdbc4.MySQL SyntaxErrorException:

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の 'add=kegalle'where sid=001" 付近で使用する正しい構文を確認してください。

どうすれば解決できますか?

4

2 に答える 2

1

問題はあなたの使い方にあるようですPreparedStatement。これを試して:

PreparedStatement state = con.prepareStatement("UPDATE supplier SET sname = ?, add = ? WHERE sid = ?");
state.setString(1,txtname.getText()); // sname (parameter 1)
state.setString(2,txtadd.getText()); // add (parameter 2)
state.setString(3,txtid.getText()); //sid (parameter 3) is actually a varchar?
state.executeUpdate(); 
于 2013-08-09T18:11:17.420 に答える