2016-11-28 15 views
-1

私はMicrosoft AccessデータベースをJavaプログラムに統合したいプロジェクトに取り組んでいます。私は正常にデータベースに接続していますが、私のSQL文はDBを更新していません。私は、ユーザー入力を読み込み、その情報をWHEREステートメントの条件として使用する変数を定義しました。私は最初のクエリの一部を取り出して肯定的な結果を得ましたが、全体の文章は協力を拒否しています。実行させるために最初のクエリについて変更する必要があるのは何ですか?UCAExc 3.0.7予期しないトークンエラー

result = statement.executeQuery("SELECT slipNumber FROM Slip WHERE (slipOpen = -1 & slipLength >= " + boatLengthdub + "& slipDepth >= " + boatDepthdub + ")"+ "LIMIT 1"); 

    statement.executeQuery("INSERT INTO Slip (slipOpen, boatID) VALUES (0," + boatIDdub + ")"); 

    System.out.println("Have a" + result); 

答えて

1

あなたはSQLキーワードANDを使用する必要がありますアンパサンド文字(&)を使用しようとしているように見えます。また、PreparedStatementを使用する必要があり、私は完全に同意するなど、

String sql = 
     "SELECT slipNumber FROM Slip " + 
     "WHERE slipOpen = -1 AND slipLength >= ? AND slipDepth >= ? " + 
     "LIMIT 1"; 
PreparedStatement ps = conn.prepareStatement(sql); 
ps.setDouble(1, boatLengthdub); // assuming that they are Double values 
ps.setDouble(2, boatDepthdub); 
ResultSet rs = ps.executeQuery(); 
if (rs.next()) { 
    System.out.println(rs.getInt("slipNumber")); 
} else { 
    System.out.println("Not found."); 
} 
+0

ゴードありがとうございました。これですべてがクリアされました。 – ace7

1

パラメータ化クエリを実行するオブジェクト。そして、あなたがアップデートを実行するとき、私は 'statement.executeUpdate(クエリ)'を使用することを提案したいと思います。

関連する問題