我正在嘗試在java中使用where子句中的字符串變量編寫sql語句。我嘗試了多種方法來做到這一點,但它一直告訴我,我沒有使用正確的語法。有人可以告訴我正確的方法來做到這一點?此查詢中的變量是par_id。將變量添加到Java中的sql語句中
String sql2 =「SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = +」'par_id'「+ ORDER BY creation_time asc」;
我正在嘗試在java中使用where子句中的字符串變量編寫sql語句。我嘗試了多種方法來做到這一點,但它一直告訴我,我沒有使用正確的語法。有人可以告訴我正確的方法來做到這一點?此查詢中的變量是par_id。將變量添加到Java中的sql語句中
String sql2 =「SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = +」'par_id'「+ ORDER BY creation_time asc」;
嘗試:
"SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = '"
+ par_id
+ "' ORDER BY creation_time asc";
nope,不會運行 – 2011-03-21 04:56:56
-1不能讓這種方法在這種情況下繼續/傳播。 – 2011-03-21 05:25:11
我的不好!只是試圖解決他的語法錯誤! – 2011-03-25 08:22:09
使用PreparedStatement
PreparedStatement ps = connection.prepareStatement("SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = ? ORDER BY creation_time asc");
ps.setObject(1, par_id);
+1防止SQL注入攻擊。 – 2011-03-21 05:01:21
嘿Suresh,我仍然得到一個空指針例外。 – 2011-03-21 05:06:23
和空指針異常是在哪一行? – MeBigFatGuy 2011-03-21 05:22:57
PreparedStatement ps = connection.prepareStatement(
"SELECT * FROM Tennis1294966077108.container_tbl " +
"WHERE parent_id = ? ORDER BY creation_time asc");
ps.setInt(1, par_id);
String sql2 = "SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id='"+par_id+"'
ORDER BY creation_time asc";
不要在將數據傳遞給SQL語句時使用字符串連接。 SQL注入容易受到攻擊。 – 2015-12-07 15:19:23
好的。感謝您的通知! – Akki 2016-03-28 17:31:59
從PHP即將來臨的? O.o – 2011-03-21 05:24:18