<分区>
Possible Duplicate:
Java - escape string to prevent SQL injection
你好。
当 sql 查询包含用户编写的字符串(包括随机字符,如 '$%&)时,我经常遇到向我的数据库提交 sql 查询的愚蠢小问题。
是否有任何地方可以将用户文本转换为 Java 的 sql 友好文本的标准函数?
谢谢
<分区>
Possible Duplicate:
Java - escape string to prevent SQL injection
你好。
当 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();
// ...
更多详情: 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
关于java - 在 Java 中是否有将字符串转换为 sql 友好字符串的标准函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530648/