2017-11-21 15 views
-1

サービスと呼ばれるテーブルに入力しようとしていますが、id、service_nameおよびservice_typeがあります。私はそれを実行しようとするとエラーが発生します。プリペアドステートメントでデータベースに挿入できません

public void insertService(String service, String serviceType) { 

    try { 
     st = myConn.createStatement(); 
     String query = "INSERT INTO services" 
         +"(service_name, service_type)" 
         +"values(?,?)"; 
     PreparedStatement preparedStmt = myConn.prepareStatement(query); 
     preparedStmt.setString(1, service); 
     preparedStmt.setString(2, serviceType); 

     st.executeUpdate(query); 
    } catch(Exception e) { 
     System.out.println("Cannot Add service" + e); 
    } 

} 
+1

すべての行の二重引用符の前にクエリ

String query = "INSERT INTO services " +"(service_name, service_type) " +"values(?,?)"; 

スペース以下

使用するすべてのエラー/例外メッセージを投稿する必要はありません。 – lad2025

+0

なぜその若者ですか? –

+2

「実行しようとするとエラーが発生します。」何らかのヒント、どのようなエラーが表示されるのでしょうか? 'Idの値はnullにできない 'のように? – lad2025

答えて

1

myConnは定義されていません。

Connection myConn = DriverManager.getConnection(url,user, password); 

あなたが値なしでクエリを実行しているかもしれないので、EDIT 1

st.executeUpdate(query); EDIT

preparedStmt.executeUpdate()対2

myConnが定義されていないようです。

Connection myConn = DriverManager.getConnection(url,user, password);

このビットを無視します。答えは最初の編集であった。

+0

私の謝罪、myConnisはコンストラクタで定義されています –

0

複数の場所でクエリーにスペースがありません。試してください:

String query = "INSERT INTO services " 
         +"(service_name, service_type) " 
         +"values(?,?)"; 

構文的に正しい/有効であることを確認する前に、手動でクエリを手動で実行してください。

0

あなたが言及したように、エラーはMySQLSyntaxErrorExceptionです。生成されたSQLクエリを探している必要があります。

関連する問題