2011-03-13 83 views
1

在我的项目中,我必须根据传递的表创建插入语句。 所以,我有两个选择 1)写PreparedStatement和批量 2运行)插入到创建表值(..)(..)(..)Matcher.quoteReplacement versus preparedstatement

我想知道原因,更喜欢(1)在(2)如果我使用Matcher.quoteReplacement()逃离值提前

感谢

回答

3

Matcher.quoteReplacement无意引用SQL字符串,所以你无法确定,以避免SQL插入使用它。但是,即使你有一个工作引用功能,准备语句仍然是更好的有以下几个原因:

  • 你不必担心忘记引用输入
  • 你不动心走捷径不加引号的你“知道”是安全的
  • 数据库可以缓存的执行计划,以避免解析使用不同的参数类似SQL的查询,从而提高性能
  • 的代码变得更加可读的(恕我直言)