我需要在Java中使用字符串列表做一個大的SQL查詢對一個MySQL數據庫,例如:逃逸字符串爲MySQL在Java中
SELECT * FROM db_table WHERE id IN (....);
不幸的是,輸入API有幾分限制在這裏和我只給出一個字符串列表作爲輸入。
通常我只想用一個參數化查詢,但不會允許我通過一個逗號分隔的列表,以便像下面這樣將無法工作:
SELECT * FROM db_Table WHERE id IN (?);
preparedStaement.Set(1, "A,B,C,D,E");
我在這個線程了一下:PreparedStatement IN clause alternatives?
不幸的是沒有更具創意的選項可以工作,因爲我沒有對數據庫的寫入權限,所以我不能創建臨時表。
那麼 - 任何想法?我只關心MySQL作爲底層的源代碼,所以如果解決方案是特定於MySQL的,那很好。
在此先感謝
編輯:單獨逃離每個字符串將被罰款 - 但有什麼辦法呢,在Java中?我沒有找到很好的運氣,我只能從apache看到一些我不能使用的東西。
- 丹
所以也是我所鏈接的主題中回答沒有幫助?另一種方式:順便說一句:http://stackoverflow.com/questions/2861230/what-is-the-best-approach-using-jdbc-for-parameterizing-an-in-clause – BalusC 2011-03-03 03:19:41
我確實看到 - 我是希望我不必這樣做 - 但我想因爲沒有更好的答案 - 我會去那樣做。 – debracey 2011-03-03 14:21:19