2011-03-21 85 views
1

我正在嘗試在java中使用where子句中的字符串變量編寫sql語句。我嘗試了多種方法來做到這一點,但它一直告訴我,我沒有使用正確的語法。有人可以告訴我正確的方法來做到這一點?此查詢中的變量是par_id。將變量添加到Java中的sql語句中

String sql2 =「SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = +」'par_id'「+ ORDER BY creation_time asc」;

+0

從PHP即將來臨的? O.o – 2011-03-21 05:24:18

回答

-1

嘗試:

"SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = '" 
+ par_id 
+ "' ORDER BY creation_time asc"; 
+0

nope,不會運行 – 2011-03-21 04:56:56

+0

-1不能讓這種方法在這種情況下繼續/傳播。 – 2011-03-21 05:25:11

+0

我的不好!只是試圖解決他的語法錯誤! – 2011-03-25 08:22:09

10

使用PreparedStatement

PreparedStatement ps = connection.prepareStatement("SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = ? ORDER BY creation_time asc"); 
ps.setObject(1, par_id); 
+1

+1防止SQL注入攻擊。 – 2011-03-21 05:01:21

+0

嘿Suresh,我仍然得到一個空指針例外。 – 2011-03-21 05:06:23

+0

和空指針異常是在哪一行? – MeBigFatGuy 2011-03-21 05:22:57

0
PreparedStatement ps = connection.prepareStatement(
    "SELECT * FROM Tennis1294966077108.container_tbl " + 
    "WHERE parent_id = ? ORDER BY creation_time asc"); 
ps.setInt(1, par_id); 
0
String sql2 = "SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id='"+par_id+"' 
ORDER BY creation_time asc"; 
+1

不要在將數據傳遞給SQL語句時使用字符串連接。 SQL注入容易受到攻擊。 – 2015-12-07 15:19:23

+0

好的。感謝您的通知! – Akki 2016-03-28 17:31:59