今天碰到个需求,根据字段个数,动态生成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, 显示如下: