gpt4 book ai didi

java - 如何在 Java 中生成字符串 "elegantly"?

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:39 24 4
gpt4 key购买 nike

我想生成一个字符串比如sql命令:

   "INSERT INTO xxx VALUES(XXX, XXX, XXX)"

目前我使用 StringBuilder 和一些 String 常量(如“INSERT INTO”)来连接表名和插入值的输入字符串参数。

然而,除了性能问题之外,这种简单的连接看起来并不优雅。还有其他方法吗?

在我看来,JDBC 的准备语句是这种“命令模板”的一个很好的例子:

PreparedStatement pstmt=connection.createPreparedStatement("INSERT INTO ? VALUES(?,?,?)");

然后就可以设置表名和插入值了。

pstmt.setString(1,"tableA");
pstmt.setInt(2, 100);
...

但是,我不能使用准备好的语句,因为我想要的只是字符串...

有人给我一些提示,让我使用 java.util.Regex 或 JavaCC 来生成字符串。但据我所知,无论为某些代码优雅问题选择了什么,Java String 都必须由 StringBuilder 之类的东西生成,对吗???

最佳答案

你可以使用 String.format():

String.format("insert into %s values('%s', '%s', '%s')", "user", "user123", "pass123", "yellow");

但值得注意的是,任何这些“字符串构建”技术都会让您容易受到 SQL 注入(inject)攻击。您应该尽可能使用 JDBC 参数化查询。

编辑以在字符串周围添加引号。

关于java - 如何在 Java 中生成字符串 "elegantly"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803600/

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