带有JDBC预准备语句的字符串中的圆括号

带有JDBC预准备语句的字符串中的圆括号,第1张

带有JDBC预准备语句的字符串中的圆括号

会回答自己-问题出在“〜”(波浪号)中。

经过详细阐述,有一个有趣的发现:

如果是SQL代码(请参见SQL代码中的“等号”):

ps = connection.prepareStatement("SELECt a,b,c FROM mytable WHERe category = ?");

无需转义。但是,如果这是SQL代码(请参见SQL代码中的“波浪号”标记):

ps = connection.prepareStatement("SELECt a,b,c FROM mytable WHERe category ~ ?");

如果有特殊字符,则需要转义,在这种情况下为“(”或“)”:

ps.setString(1, "super/category/abc(def".replaceAll("\(", "\(")));

这是因为模式匹配:PostgreSQL模式匹配,因为带有波浪号的JDBC驱动程序不知道圆括号是正常字符(例如我的情况)还是模式匹配的分组符号,这些模式将哪些项组合成一个逻辑项。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5107853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存