gpt4 book ai didi

java - 常量字符串生成器

转载 作者:行者123 更新时间:2023-12-01 20:03:01 24 4
gpt4 key购买 nike

在应用程序中,我们使用大量 SQL 查询,并将其分配在字符串常量中。所以我的问题是用 StringBuilder 替换 String ,是否可以提高性能,因为我们必须对大型 SQL 查询进行大量串联。即以下两种方法,这是最好的方法:

方法一:

String sql= "select * from table1" + " table2 where column = :1";

方法 2:

StringBuilder sql =  new StringBuilder("select * from table1").
append( "table2 where column = :1" );

谁能推荐

最佳答案

使用字符串连接(使用 + 运算符)。

  • 如果表达式是编译时常量表达式,那么它们将在编译时求值。

  • 如果不是;例如

     String sql = "select * from " + tableName() + " where column = :1";

    无论表达式是否为(运行时)常量,最好让编译器优化连接。他们应该使用 StringBuilder 将上述内容转换为等效代码。

您应该考虑显式使用 StringBuilder 的唯一情况是当您执行以下操作时:

   String sql= "select * from table where ";
for (String part: parts) {
sql += part + " ";
}

当前一代编译器无法优化上述内容。

最后,不要使用StringBuilder表示常量。它们是可变的......而不是恒定的。

<小时/>

作者注:以上示例仅供说明之用。想想 SQL 注入(inject)!使用PreparedStatement。

关于java - 常量字符串生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47827944/

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