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

标签 java mysql jdbc

查询在 MySQL 数据库中运行良好。我的 JDBC 应用程序中有此查询。我遇到了一些编译时错误。
我的输入对象是 s1s2,其中 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/

相关文章:

java - 在 MVC Java 游戏中将声音放在哪里?

c# - 为两种方法处理 MySQL 事务

java - 安全的 JDBC 连接

Java JDBC Postgres : Select with single quote

php - 未定义索引 PHP

java - JDBC中SQL查询错误的InputStream

Java程序只写最后一行?

java - GWT Celltable 只显示 15 行

Java 通用构造函数的语法和用途

mysql - 如何从两个表中获取针对 ID (FK) 的多个图像