2016-05-04 11 views
-4
try{ 
     Class.forName("com.mysql.jdbc.Driver"); 

     System.out.println("Connecting to a selected database..."); 
     conn = DriverManager.getConnection(DB_URL, USER, PASS); 
     System.out.println("Connected database successfully..."); 

     System.out.println("Inserting records into the table..."); 
     stmt = conn.createStatement(); 


for (int j = 0; j < 30; j++) 
{ 
       int a = 230 + j % 15; 
       String String = Integer.toString(a); 
       String str = Integer.toString(a); 


       double b = 1.3 + j % 17 * 0.1; 
       String aString = Double.toString(b); 
       String IKW2 = String.valueOf(b); 

    String sql ="INSERT INTO cmd"; 
    sql +="VALUES" + "("+ a +b ")";   

     stmt.executeUpdate(sql); 
    } 
     catch(SQLException se){ 
     se.printStackTrace(); 
    } 

ここで私はjdbc接続を完了し、 をmysqlにインポートします。使用された挿入ステートメント。スタックトレースでは、その は、接続が完了したことを示しています。シンタックスエラーです。 私はデータを生成し、すべてのデータを印刷して、 をdbにインポートしたいと考えています。挿入クエリが間違っていますか?挿入ステートメントにデータを生成するには

+0

2つの値を挿入する場合は、値INSERT INTO table_name VALUES(value1 **、** value2 **、** value3、...)の間にカンマがありません。また、[PreparedStatement](https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html)にリンクする必要があります – Stoffl

+2

'String String = ...'のような変数を宣言しないと混乱します! – Nirekin

+0

cmdテーブルの構造は何ですか? –

答えて

1

あなたがプリペアドステートメントを使用しなければなりません。次の手順はあなたを助けます。

  1. 前すべての列がPreparedStatement#setXXX方法を用いて(表中の3つの列を想定)

    PreparedStatement ps = con.prepareStatement("INSERT INTO CMD VALUES(?,?,?)");

  2. セットのパラメータ値を準備文を作成

  3. 、B、C等値計算

  4. 実行文

-1
  1. あなたはテーブルが
  2. あなたは括弧を閉じる前に +を追加する必要があり
  3. (BTWない2つの列を持っている場合あなたは確かにab間昏睡を追加する必要がVALUES
  4. の前にスペースを追加する必要があります+コードはコンパイルされません)。

テーブルが2つの列を持っている場合、これを試してみてください:

String sql ="INSERT INTO cmd"; 
    sql += " VALUES" + "(" + a + "," + b + ")"; 
関連する問題