将字符串附加到SQL表

时间:2011-04-18 14:42:38

标签: sql

stmt="SELECT * FROM people_?"

stmt.setString(1, year);

我要调用的表名基于年份(people_2009,people_2010等等),我将年份设置为java变量。我知道上面的代码不会起作用,因为它会在一年中放置引号,但有没有办法在表名上附加字符串,或者其他任何方式来解决这个问题?

2 个答案:

答案 0 :(得分:0)

这应该有效:

String stmt = "SELECT * FROM people_" + year;

答案 1 :(得分:0)

你可以这样做。

stmt="SELECT * FROM people_" + year;

哪个应该可以正常工作。只需确保在附加之前正确验证年份变量,否则最终可能会出现SQL注入问题。如果year是int类型,则不需要验证来停止sql注入,但是您可能需要验证范围以确保表存在。