gpt4 book ai didi

不使用 setString 的 Java SQL 转义

转载 作者:行者123 更新时间:2023-11-29 09:42:12 24 4
gpt4 key购买 nike

是否有内置方法可以为 SQL 转义字符串?我会使用 setString,但碰巧我在同一个组合 SQL 语句中多次使用 setString,如果转义只发生一次而不是每次我说 setString 时,性能会更好(我认为)。如果我在变量中有转义字符串,我可以重新使用它。

在 Java 中没有办法做到这一点吗?

当前方法,多源搜索。实际上,它们是三个完全不同的 where 语句,包括连接,但对于这个例子,我将只显示每个表的相同 where。

String q = '%' + request.getParameter("search") + '%';
PreparedStatement s = s("SELECT a,b,c FROM table1 where a = ? UNION select a,b,c from table2 where a = ? UNION select a,b,c FROM table3 where a = ?");
s.setString(1, q);
s.setString(2, q);
s.setString(3, q);
ResultSet r = s.executeQuery();

我知道这没什么大不了的,但我喜欢让事情变得高效,而且在某些情况下使用 "+ quote(s) + " 而不是 更具可读性>? 然后在行的某处找到 setString

最佳答案

如果您使用 setString 作为参数(例如 PreparedStatement.setString),可能不需要实际转义 - 很可能数据将与SQL 本身,以一种不需要转义的方式。

您是否有任何具体迹象表明这确实是性能瓶颈?在数据库查询中,昂贵的部分似乎不太可能在本地设置参数......

关于不使用 setString 的 Java SQL 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com