stmt="SELECT * FROM people_?"
stmt.setString(1, year);我尝试调用的表名是基于年份的(people_2009、people_2010等...),我将年份设置为一个java变量。我知道上面的代码不会起作用,因为它会把引号放在年份周围,但是有没有一种方法可以将字符串附加到表名中,或者其他任何方法呢?
发布于 2011-04-18 22:48:06
你可以这么做。
stmt="SELECT * FROM people_" + year;这应该可以很好地工作。只需确保在追加year变量之前对其进行了正确验证,否则可能会出现SQL注入问题。如果year的类型为int,则不需要验证就可以停止sql注入,但是您可能需要验证范围以确保表存在。
发布于 2011-04-18 22:47:04
这应该是可行的:
String stmt = "SELECT * FROM people_" + year;https://stackoverflow.com/questions/5704605
复制相似问题