gpt4 book ai didi

java - replaceAll 与 setString

转载 作者:行者123 更新时间:2023-11-29 09:43:41 25 4
gpt4 key购买 nike

我有一个包含六个“?”的准备好的声明在里面。并且在所有地方都将替换为相同的字符串。

应该首选以下两种方法中的哪一种:

pstmt = con.prepareStatement(QUERY.replaceAll("\\?", id));

pstmt = con.prepareStatement(QUERY));
pstmt.setString(1, id);
pstmt.setString(2, id);
pstmt.setString(3, id);
pstmt.setString(4, id);
pstmt.setString(5, id);
pstmt.setString(6, id);

最佳答案

第二个,第一个可能容易受到 SQL 注入(inject)攻击。尤其是当(在这里看起来如此)id 是一个 String 时。

pstmt = con.prepareStatement(QUERY));
pstmt.setString(1, id);
pstmt.setString(2, id);
pstmt.setString(3, id);
pstmt.setString(4, id);
pstmt.setString(5, id);
pstmt.setString(6, id);

另外,上面的语句应该执行得更好,因为语句查询缓存可能会为不同的 id(s) 重用语句。第一个示例并非如此。

关于java - replaceAll 与 setString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25427880/

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