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

使用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 回答
1

您应该通过使用准备好的语句参数来利用准备好的语句。这样,您可以使用 setter 实用地设置参数。

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());

只需确保将语句 * 设置为* s sql 查询。

于 2012-11-09T23:44:46.270 回答
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 回答