stmt="SELECT * FROM people_?"
stmt.setString(1, year);
我要调用的表名基于年份(people_2009,people_2010等等),我将年份设置为java变量。我知道上面的代码不会起作用,因为它会在一年中放置引号,但有没有办法在表名上附加字符串,或者其他任何方式来解决这个问题?
答案 0 :(得分:0)
这应该有效:
String stmt = "SELECT * FROM people_" + year;
答案 1 :(得分:0)
你可以这样做。
stmt="SELECT * FROM people_" + year;
哪个应该可以正常工作。只需确保在附加之前正确验证年份变量,否则最终可能会出现SQL注入问题。如果year是int类型,则不需要验证来停止sql注入,但是您可能需要验证范围以确保表存在。