加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在Java中“优雅地”生成String?

发布时间:2020-12-15 01:59:59 所属栏目:Java 来源:网络整理
导读:我想生成一个字符串,如sql命令: "INSERT INTO xxx VALUES(XXX,XXX,XXX)" 目前我使用StringBuilder和一些String常量,如“INSERT INTO”来连接表名和插入值的输入String参数. 但是,除了性能问题之外,这种简单的连接看起来并不优雅. 有没有其他方法这样做? 在
我想生成一个字符串,如sql命令:

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

目前我使用StringBuilder和一些String常量,如“INSERT INTO”来连接表名和插入值的输入String参数.

但是,除了性能问题之外,这种简单的连接看起来并不优雅.
有没有其他方法这样做?

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

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

然后你可以设置表名和插入值.

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

但是,我不能使用预备语句,因为我想要的只是String …

有人给我一些提示,使用java.util.Regex或JavaCC来生成String.
但据我所知,无论选择什么代码优势问题,Java String必须由StringBuilder生成,对吧?

解决方法

你可以使用String.format():

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读