带有printf的javastringbuilder。等效字符串格式
我正在使用StringBuilder构建一个非常长的查询带有printf的javastringbuilder。等效字符串格式,java,string,stringbuilder,string.format,Java,String,Stringbuilder,String.format,我正在使用StringBuilder构建一个非常长的查询 StringBuilder sb = new StringBuilder(); sb.append("select * from x where name = %s'"); String.format(sb.toString, "John"); 这样的东西有什么等价物?或者这实际上是正确的方法吗?似乎您正在尝试为SQL构建字符串预处理语句应用于此目的 PreparedStatement preparedStatement =
StringBuilder sb = new StringBuilder();
sb.append("select * from x where name = %s'");
String.format(sb.toString, "John");
这样的东西有什么等价物?或者这实际上是正确的方法吗?似乎您正在尝试为
SQL
构建字符串<代码>预处理语句应用于此目的
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");
似乎您正在尝试为
SQL
构建字符串<代码>预处理语句应用于此目的
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");
这可能对你有帮助。其中
con
是连接
PreparedStatement preStatement = con.prepareStatement("select * from x where name = ?");
preStatement.setString(1, "John");
这可能对你有帮助。其中
con
是连接
PreparedStatement preStatement = con.prepareStatement("select * from x where name = ?");
preStatement.setString(1, "John");
如果您没有使用SQL,对于一般的格式化追加,可以使用
Formattor
的format()
方法
e、 g
/**
*生成还包含数据列表的字符串。
*
*@返回
*/
公共字符串toString WithDataList(){
List=toList();
StringBuilder sb=新的StringBuilder(getClass().getName());
格式化程序fm=新格式化程序(sb);
sb.append(toString()).append(System.lineSeparator());//基本信息,
//价值清单,
如果(大小>0){
sb.追加(“list=”);
对于(int i=0;i
如果您没有使用SQL,对于一般的格式化追加,可以使用格式化程序的格式化()方法
e、 g
/**
*生成还包含数据列表的字符串。
*
*@返回
*/
公共字符串toString WithDataList(){
List=toList();
StringBuilder sb=新的StringBuilder(getClass().getName());
格式化程序fm=新格式化程序(sb);
sb.append(toString()).append(System.lineSeparator());//基本信息,
//价值清单,
如果(大小>0){
sb.追加(“list=”);
对于(int i=0;i
同样的答案,但我太激动了quick@nelsonjuan在这里添加什么?@Ruchira我实际上是在使用javax.persistence.EntityManager来管理数据库。我正在准备em.createNativeQuery(sb.toString(),SomeClass.class)的字符串。getResultList()@nelsonjuan您可以使用相同的答案为EntityManager的
本机查询设置参数,但是我太quick@nelsonjuan在这里添加什么?@Ruchira我实际上是在使用javax.persistence.EntityManager来管理数据库。我正在准备em.createNativeQuery(sb.toString(),SomeClass.class)的字符串。getResultList()@nelsonjuan您可以使用setParameter
为EntityManager的
本机查询设置参数