可能重复:
Java - 转义字符串以防止SQL注入
你好.
当sql查询包含用户编写的字符串(包括'$%&)等随机字符时,我一直在向我的数据库提交sql查询时遇到愚蠢的小问题.
是否有标准函数可以将用户文本转换为Java的sql友好文本?
谢谢
以下建议适用于任何语言或框架:不要通过连接字符串来编写查询,这是不安全的.请改用参数化查询.
在Java中,参数化查询是使用PreparedStatement编写的.例如:
PreparedStatement stmt = connection.prepareStatement("SELECT * FROM whatever WHERE id = ? AND name= ?");
stmt.setInt(1, 1000); // parameters starts at 1
stmt.setString(2, "'$%&");
ResultSet rs = stmt.executeQuery();
// ...
Run Code Online (Sandbox Code Playgroud)
更多细节:http: //download.oracle.com/javase/tutorial/jdbc/basics/prepared.html
另请参阅PreparedStatement的文档:http: //download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html