java - 在 Java 中是否有将字符串转换为 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/

相关文章:

java - 如何使用 pojo 从数据存储中检索实体?

java - 创建一个方法来检查不同的对象,如果 null 抛出异常

java - 如何在 Eclipse 中使用 Maven 构建 WAR?

java - Dockerizing 使用 oracle-ojdbc : How do you get the driver in there? 的 Maven 应用程序

java - 将对象数组从 Java 返回到 C++

mysql - 我如何在 MySQL 中设置这些带有主键等的简单表?

sql - 在 SQL 字段中为每个 JSON 元素选择一行/将 JSON 字段转换为行

MySQL 错误 150

mysql - 从一个表中选择信息引用另一个表中的信息

mysql - 更改表小数字段?