0

私は自分のJavaプログラムで次のSQLクエリを書いています

PreparedStatement pre = conn.prepareStatement("select ID,FirstName,LastName,Dept from "                 
    + "student where ID =" + ID + " or FirstName=" + firstName + ";");

ただし、次のエラーが発生します。

FirstName ="+Parkerに正しい構文を使用する

これはどのように発生し、どうすれば解決できますか?

4

3 に答える 3

1

準備済みステートメントのパラメーターを使用して、準備済みステートメントを利用する必要があります。このようにして、セッターを使用してパラメーターを実用的に設定できます。

http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html .

Oracle ドキュメントからの抜粋を次に示します。

PreparedStatement updateSales = null;

String updateString = "update " + dbName + ".COFFEES " + "set SALES = ? where COF_NAME = ? ";

updateSales = con.prepareStatement(updateString);

updateSales.**setInt**(1, e.getValue().intValue());

updateSales.**setString**(2, e.getKey());

ステートメントを *順番に設定することを確認してください。

于 2012-11-09T23:44:46.270 に答える
1

PreparedStatement次のように使用します。

PreparedStatement pre = conn.prepareStatement("select ID,FirstName,LastName,Dept from student where ID = ? or FirstName = ?");
pre.setInt(1, ID);
pre.setString(2, firstName);
于 2012-11-09T23:36:47.250 に答える
0

Java で sql を使用したことはありませんが、ファースト ネームを一重引用符で囲んでいないためだと思います。あなたがしたい:

PreparedStatement pre = conn.prepareStatement("select ID,FirstName,LastName,Dept from " + "student where ID =" + ID + " or FirstName='" + firstName + "';");

強調:

... FirstName='" + firstName + "';");
于 2012-11-09T23:33:30.853 に答える