首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreparedStatement将转义哪些字符?

问PreparedStatement将转义哪些字符?
EN

Stack Overflow用户
提问于 2010-10-14 23:38:29
回答 2查看 9.5K关注 0票数 6

我注意到,当我使用PreparedStatement时,它似乎无法转义某些通配符,如“%”或“_”。我知道在MySql中可以使用反斜杠对它们进行转义。这让我想知道,PreparedStatement会转义哪些字符?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-14 23:45:02

PreparedStatement不会逃脱任何东西-它依赖于数据库对预编译语句的支持。

也就是说,PreparedStatement永远不会为了形成文字查询字符串而用?代替参数值。相反,它将带有占位符的查询字符串发送到数据库,并使用数据库支持来绑定查询参数(但是,这可能取决于JDBC驱动程序实现)。

票数 7
EN

Stack Overflow用户

发布于 2012-04-09 09:24:18

在我的测试中,它转义了单引号、\r、\t、\n等。它工作得很好:

代码语言:javascript
复制
String sql = "INSERT INTO test(title) VALUES(?)";
PreparedStatement stmt = con.prepareStatement(sql);
String title = "I'm a \"student\" in a \t (university) \r\n";
stmt.setString(1, title);
stmt.executeUpdate();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3934943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档