我正在使用StringBuilder构建一个非常长的查询。
StringBuilder sb = new StringBuilder();
sb.append("select * from x where name = %s'");
String.format(sb.toString, "John");
什么相当于这样的东西?或者这实际上是正确的方法吗?
答案 0 :(得分:5)
您似乎正在尝试为SQL
构建字符串。为此,应使用PreparedStatement
代替。
PreparedStatement preparedStatement =
connection.prepareStatement("select * from x where name = ?");
preparedStatement.setString(1, "John");
编辑:
鉴于您使用的是EntityManager
,您可以使用等效的setParameter
Query q =
entityManager.createNativeQuery("select * from x where name = ?", MyClass.class);
q.setParameter(1, "John");
答案 1 :(得分:1)
这可能会对你有所帮助。 con
是连接的地方
PreparedStatement preStatement = con.prepareStatement("select * from x where name = ?");
preStatement.setString(1, "John");
答案 2 :(得分:0)
如果您不使用SQL,则对于常规格式的追加,可以使用Formattor
的{{1}}方法。
例如
format()