Java Matcher.quoteReplacement与preparedstatement的对比
在我的项目中,我必须根据传递的表创建insert语句。 所以我有两个选择 1) 编写preparedstatement并批量运行 2) 创建插入表值(..)、(..)、(..) 如果我使用Matcher.quoteReplacement()来转义这些值,我想知道为什么我更喜欢(1)而不是(2)Java Matcher.quoteReplacement与preparedstatement的对比,java,mysql,sql,jdbc,code-injection,Java,Mysql,Sql,Jdbc,Code Injection,在我的项目中,我必须根据传递的表创建insert语句。 所以我有两个选择 1) 编写preparedstatement并批量运行 2) 创建插入表值(..)、(..)、(..) 如果我使用Matcher.quoteReplacement()来转义这些值,我想知道为什么我更喜欢(1)而不是(2) 提前感谢Matcher。quoteReplacement不是用来引用SQL字符串的,因此您不能确定是否可以使用它避免SQL插入。但是,即使您有一个有效的引用功能,出于以下几个原因,准备好的语句仍然会更好:
提前感谢Matcher。quoteReplacement不是用来引用SQL字符串的,因此您不能确定是否可以使用它避免SQL插入。但是,即使您有一个有效的引用功能,出于以下几个原因,准备好的语句仍然会更好:
- 您不必担心忘记引用输入
- 你不想走捷径,也不想引用你“知道”的安全值
- 数据库可以缓存执行计划,以避免解析具有不同参数的类似SQL查询,从而提高性能
- 代码更具可读性(IMHO)