質問: "INSERT INTO category(category_name)VALUES("+category+");"; statement.executeUpdate(sql); ``` ここの部分に関して変数Categoryを "INSERT INTO category(category_name)VALUES("+category+");" のSQLでやっていますが反応しないどころかエラーしかでません 多分"←を用いない方法でやるべきなのでしょうがわかりません、教えていただけると非常にありがたいです、ネット上で調べた感じではわかりませんでした。
回答: categoryテーブルのcategory_nameは文字列ですよね?普通にSQLを書くならVALUESに入る値は""または''で囲みますよね?ですがあなたの作成したsql変数には直接category変数が書き込まれています。なのでSQL文として間違っています。 prepareStatementを使うならこうです。 ``` //insert文 // あとから置き換えたい部分を?にしておく PreparedStatement statement= con.prepareStatement("INSERT INTO category(category_name)VALUES(?)"); Scanner s = new Scanner(System.in); System.out.println("Categoryの名前を入れてください"); String category = ""; category = s.next(); System.out.println(category+"が入力されました"); // 1つ目の?にcategoryを当てはめる statement.setString(1, category); // 実行する statement.executeUpdate(); ```