
今天碰到个需求,根据字段个数,动态生成sql的占位符,如下:
public static void main(String[] args) {
System.out.println(String.join(",",Collections.nCopies(10,"?")));
}
显示结果:
来个实际的例子:
public class Test { public static void main(String[] args) {
String tableName = "user";
String fieldNames = "name,age,weight"; System.out.println(getInsertSqlString(tableName,fieldNames));
} private static String getInsertSqlString(String tableName,String fieldNames){
int size = fieldNames.split(",").length;
StringBuffer sb = new StringBuffer("");
sb.append("insert into ").append(tableName).append("(").append(fieldNames).append(")")
.append("values(").append(String.join(",",Collections.nCopies(size,"?"))).append(");");
return sb.toString();
} }
输入参数tableName, fieldNames, 显示如下: