0

该查询在 MySQL 数据库中运行良好。我的 JDBC 应用程序中有这个查询。而且我遇到了一些编译时错误。
我的输入对象是s1s2,其中s1 包含 januarys2 包含 2013。两种数据类型都是 VARCHAR。我在引号中遇到问题。请提出一些更正。

String QueryString = "SELECT reading,totalcost,paiddate,receiptnumber
FROM userseven WHERE (readingmonth = '"+s1+"' AND readingyear='"+s2+"'");

4

1 回答 1

2

你应该更好地PreparedStatement用于这样的目的。因此,您的查询将如下所示:

 String QueryString = "SELECT reading,totalcost,paiddate,receiptnumber FROM userseven WHERE
 readingmonth = ? AND readingyear= ?;

然后 像这样PreparedStatementconnection对象创建:

PreparedStatement stmt = conn.prepareStatement(QueryString);

然后为该语句设置参数,如下所示:

stmt.setString(1, s1);
stmt.setString(2, s2);

此类修改将使您免于潜在的 sql 注入,并简化构建复杂查询的过程

于 2013-01-27T02:25:40.103 回答