2017-02-11 140 views
2

如何使用預準備語句從數據庫檢索結果集?我不知道如何繼續從我的代碼,我設法得到準備好的語句的查詢和變量,現在我被困在從數據庫中檢索。Java從數據庫檢索結果

回答

3

您無法通過字段名作爲參數。只有數據可以像這樣傳遞。條件

WHERE ?=? 
-- ^

與替代Field1field1將字面解釋,因爲

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

如果你想構建從字段名的情況下,你需要構造SQL字符串本身。例如,你可以通過

SELECT * FROM Table1 WHERE %s=? 

,並把它作爲一個格式字符串爲formatter,傳遞Field1的說法替代%s

要非常小心的字段的名稱不被用戶進入的:任何SQL成爲字符串的一部分必須來自於你的程序或它的配置文件,以避免SQL注入攻擊的常量池。

+0

哦,我明白了,謝謝!但讓我們說,如果我想顯示結果集,我如何從傳遞的字段中列出它們? – newbie95

+0

@ newbie95使用['ResultSetMetaData'](http://stackoverflow.com/a/696798/335858)。 – dasblinkenlight

+0

@dashblinkenlight對不起,我的意思是什麼,如果從另一個類它通過像查詢「從表中選擇字段1,字段2在哪裏......」,我怎麼把字段1和字段2(取決於查詢通過字段數)進入準備語句讓我檢索結果集? – newbie95