Java从数据库中检索结果

时间:2017-02-11 14:20:11

标签: java jdbc arguments prepared-statement resultset

如何使用预准备语句从数据库中检索结果集?我不知道如何从我的代码继续,我设法得到查询和准备好的语句的变量,现在我不得不从数据库中检索。

1 个答案:

答案 0 :(得分:3)

您不能将字段名称作为参数传递。只能像这样传递数据。条件

WHERE ?=?
--    ^
替换为Field1field1

将按字面解释为

WHERE 'Field1'='field1' -- note the quotes around the values

如果要从字段名构造条件,则需要构造SQL字符串本身。例如,您可以传递

SELECT * FROM Table1 WHERE %s=?

并将其用作formatter的格式字符串,并将Field1作为参数传递给%s

要非常小心不能由用户输入的字段名称:任何成为SQL字符串一部分的内容都必须来自程序或其配置文件中的常量池,以避免SQL注入攻击。