我使用JSP和SQL中使用一個變量,我想用我已經聲明的變量(實體)在這裏查詢表 是我的查詢:如何在where子句
..
String **entite**="informatique";
entite="informatique"
...
rs = st.executeQuery ("select * from User where User.id_e= &**entite** ");
entite是一個變量
我的問題是:如何使用一個變量在where子句中
我使用JSP和SQL中使用一個變量,我想用我已經聲明的變量(實體)在這裏查詢表 是我的查詢:如何在where子句
..
String **entite**="informatique";
entite="informatique"
...
rs = st.executeQuery ("select * from User where User.id_e= &**entite** ");
entite是一個變量
我的問題是:如何使用一個變量在where子句中
我的首選解決方案 - 使用PreparedStatement
與?
和setString(...)
參數。
見進一步的細節在這裏:
http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html
-1建議在JSP頁面中直接在SQL中嵌入(潛在的)HTTP參數...我會發布我的小'1;下降數據庫「entite到您的網頁(如果這不明確,請閱讀關於SQL注入) –
@Lukas:感謝提醒;-) – powerMicha
是的。現在好多了 :) –
最好最安全的方法是使用PreparedStatement的變量綁定到查詢。
例如見(希望鏈接不會在第二個破) http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html
您可以使用轉義技術,但是他們是容易出錯,而且相當經常導致SQL注入攻擊和/或數據庫損壞。
JSP和SQL。請在繼續之前閱讀有關SQL注入的信息! –