如何在where子句中使用变量

时间:2011-07-14 10:41:57

标签: mysql sql jsp

我使用jsp和sql并且我想使用我已经声明的变量(实体)查询表 这是我的疑问:

..
String **entite**="informatique";
entite="informatique"

...
rs = st.executeQuery ("select * from User where User.id_e= &**entite** ");

entite是一个变量

我的问题是:如何在where子句中使用变量

2 个答案:

答案 0 :(得分:1)

我的首选解决方案 - 使用PreparedStatement ?setString(...)作为参数。

请在此处查看更多详情:

http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html

答案 1 :(得分:0)

最好和最安全的方法是使用PreparedStatement将变量绑定到查询。

例如看(希望链接不会在一秒钟内中断) http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html

您可以使用转义技术,但它们容易出错,并且经常导致SQL注入攻击和/或数据库损坏。