查询在 MySQL 数据库中运行良好。我的 JDBC 应用程序中有此查询。我遇到了一些编译时错误。
我的输入对象是 s1 和 s2,其中 s1 包含 1 月,s2 包含 2013。两种数据类型都是 VARCHAR。我在引号中遇到问题。
请提出一些更正建议。
String QueryString = "SELECT reading,totalcost,paiddate,receiptnumber<br/>
FROM userseven WHERE (readingmonth = '"+s1+"' AND readingyear='"+s2+"'");
最佳答案
为此目的,您最好使用PreparedStatement
。所以你的查询将如下所示:
String QueryString = "SELECT reading,totalcost,paiddate,receiptnumber FROM userseven WHERE
readingmonth = ? AND readingyear= ?;
然后从 connection
对象创建 PreparedStatement
,如下所示:
PreparedStatement stmt = conn.prepareStatement(QueryString);
然后为该语句设置参数,如下所示:
stmt.setString(1, s1);
stmt.setString(2, s2);
此类修改将使您免于潜在的 SQL 注入(inject),并简化构建复杂查询的过程
关于java - 如何在 JDBC 应用程序中使用动态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543795/