如何在JDBC应用程序中使用动态对象

时间:2013-01-27 02:17:47

标签: java mysql jdbc

MySQL db中的查询工作正常。我在JDBC应用程序中有这个查询。而且我得到一些编译时错误 我的输入对象是 s1 s2 ,其中 s1包含1月 s2包含2013 。两种数据类型都是VARCHAR。我在引号方面遇到问题。 请提出一些修正建议。

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

1 个答案:

答案 0 :(得分:2)

出于此目的,您最好使用PreparedStatement。所以你的查询将如下所示:

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

然后从PreparedStatement对象创建connection,如下所示:

PreparedStatement stmt = conn.prepareStatement(QueryString);

然后像这样设置该语句的参数:

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

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