Java从数据库检索结果

Java从数据库检索结果,java,jdbc,arguments,prepared-statement,resultset,Java,Jdbc,Arguments,Prepared Statement,Resultset,如何使用准备好的语句从数据库中检索结果集?我不知道如何从我的代码继续,我设法获得了查询和准备语句的变量,现在我在从数据库检索方面遇到了困难。您不能将字段名作为参数传递。只有数据可以这样传递。状况 WHERE ?=? -- ^ 替换后的Field1和Field1将按字面解释为 WHERE 'Field1'='field1' -- note the quotes around the values 如果要从字段名构造条件,则需要构造SQL字符串本身。例如,你可以通过考试 SELECT *

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

您不能将字段名作为参数传递。只有数据可以这样传递。状况

WHERE ?=?
--    ^
替换后的
Field1
Field1
将按字面解释为

WHERE 'Field1'='field1' -- note the quotes around the values
如果要从字段名构造条件,则需要构造SQL字符串本身。例如,你可以通过考试

SELECT * FROM Table1 WHERE %s=?
并将其用作格式字符串,传递
字段1
作为替换
%s
的参数


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

哦,我明白了,谢谢!但是,如果我想显示结果集,如何从传递的字段中列出它们?@dashblinkenlight抱歉,我的意思是,如果它从另一个类中传递了查询,如“select Field1,Field2 from Table Where…”,我该如何放置字段1和字段2(字段数量取决于传递的查询)在准备好的语句中检索结果集?@newbie95您是否遵循了上面评论中的链接?是的,我已经完成了,但它在控制台中打印出来,是否仍然不在控制台中打印,而是将结果返回给另一个类?