今天碰到個需求,根據字段個數,動態生成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, 顯示如下: