以下のエラーが発生し困っています。
色々と試してみましたが根本的な原因が何なのか分かっていないので解決策が見つかりません。
(コードの書き方がおかしいのか、DB側がおかしいのか)
以下コードの
copcod、empnum、knjnamsei、knjnammei
の変数の中には値が入っている事、確認済です。
使用しているDBはMySQLです。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and empnum =? and knjnamsei =? and knjnammei =?' at line 1 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルをチェックして、近くで使用する正しい構文を確認してください。そしてエンプナム=?そしてクジュナムセイ=?そして、1行目で「クジュナムメイ=?」
### 該当のソースコード con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/local_db?useUnicode=true&characterEncoding=utf8", "root", "id"); System.out.println("MySQLに接続できました。"); String sql = "delete from t_users where copcod= ? and empnum =? and knjnamsei =? and knjnammei =?"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, copcod); stmt.setString(2, empnum); stmt.setString(3, knjnamsei); stmt.setString(4, knjnammei); ```ここに言語名を入力 Java
CREATE TABLE t_users
(
copcod
varchar(4) NOT NULL,
empnum
varchar(8) NOT NULL,
knjnamsei
varchar(40) DEFAULT NULL,
knjnammei
varchar(40) DEFAULT NULL,
PRIMARY KEY (copcod
,empnum
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
TABLE定義 ``````ここに言語を入力 package MVC; import java.io.IOException; import java.sql.*; import javax.servlet.ServletException; public class UsersDelete { private int result; private String resultCopcod; private String resultEmpnum; private String resultKnjnamsei; private String resultKnjnammei; public String getresultDelreteCopcod() { return this.resultCopcod; } public String getresultDelreteEmpnum() { return this.resultEmpnum; } public String getresultDelreteKnjnamsei() { return this.resultKnjnamsei; } public String getresultDelreteKnjnammei() { return this.resultKnjnammei; } public int getResult() { return this.result; } public void processing(String copcod, String empnum, String knjnamsei, String knjnammei) throws ServletException, IOException { Connection con = null; try { // JDBCドライバのロード - JDBC4.0(JDK1.6)以降は不要 Class.forName("com.mysql.jdbc.Driver"); // MySQLに接続 con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/local_db?useUnicode=true&characterEncoding=utf8", "root", "id"); System.out.println("MySQLに接続できました。"); String sql = "delete from t_users where copcod= ? and empnum =? and knjnamsei =? and knjnammei =?"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, copcod); stmt.setString(2, empnum); stmt.setString(3, knjnamsei); stmt.setString(4, knjnammei); int result = stmt.executeUpdate(sql); System.out.println("更新件数は" + result + "です。"); this.result = result; this.resultCopcod = copcod; this.resultEmpnum = empnum; this.resultKnjnamsei = knjnamsei; this.resultKnjnammei = knjnammei; } catch (ClassNotFoundException e) { System.out.println("JDBCドライバのロードに失敗しました。"); } catch (SQLException e) { System.out.println("MySQLに接続できませんでした。"); System.out.println(e.getMessage()); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { System.out.println("MySQLのクローズに失敗しました。"); } } } } }
回答1件
あなたの回答
tips
プレビュー