2

jdk 1.7とを使用netbeans 7.1.2して Java SE で簡単なアプリをプログラミングしていMySQL 5ます。

しかし、次のコードにエラーがあります。

String sql = "SELECT idpaciente, ap_paterno, ap_materno, nombres, edad, direccion, telefono, descuento, movil, email, docId FROM paciente WHERE ap_paterno LIKE ? ";
pst = con.prepareStatement(sql);

pst.setString(1, paciente.getApellidoPaterno());

ResultSet rs = pst.executeQuery(sql);

このコードのコンパイルは良好ですが、実行後、構文エラーが発生しました。netbeans は次のように述べています。

SQL 構文にエラーがあります。「?」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。1行目

netbeans のデバッガーを使用すると、エラーは executeQuery にありますが、エラーが見つかりません。

4

2 に答える 2

2

PreparedStatement.executeQuery()ただし、インターフェイスは継承するため、Statement.executeQuery(String sql)代わりにそれを呼び出しています。ただ電話してください:

ResultSet rs = pst.executeQuery();
于 2012-05-26T05:20:11.263 に答える
2

http://www.theserverside.com/discussions/thread.tss?thread_id=33182

上記のリンクには、このトピックに関するいくつかの議論があります。'like' と 'in' には、事前に用意されたステートメントが機能しないようです。

したがって、問題は、準備されたステートメントが ? の代わりに失敗することです。結果のクエリは正しくありません。表示されるエラーは、mysql から直接発生します。

于 2012-05-26T05:25:02.183 に答える