Java 如何创建可参数化的sql请求,以创建包含多个字段的表

Java 如何创建可参数化的sql请求,以创建包含多个字段的表,java,sql,Java,Sql,以下是我的建议,但问题是我最终会遇到,。例如,我将有: create table(field 1 varchar(50) not null,field 2 varchar(45) not null,); 我的问题是如何删除最后一个, String req = "CREATE TABLE " + db.getTable_Name() + " ("; for (int i = 0; i < db.getColumns_number(); i++) { req += db.getFi

以下是我的建议,但问题是我最终会遇到
。例如,我将有:

create table(field 1 varchar(50) not null,field 2 varchar(45) not null,); 
我的问题是如何删除最后一个

String req = "CREATE TABLE " + db.getTable_Name() + " (";
for (int i = 0; i < db.getColumns_number(); i++) {
    req += db.getField() + " " + db.getType() + "(" + db.getSize() + ")" + " " + db.getNullabilité () + ",";
}

req += ")";
String req=“CREATE TABLE”+db.getTable_Name()+”(”;
对于(int i=0;i
替换最后一个,非常简单。没有regexp:

String s = "create table(field 1 varchar(50) not null,field 2 varchar(45) not null,);";
int n = s.lastIndexOf(',');
System.out.println(s.substring(0, n) + s.substring(n+1));
结果:


创建表(字段1 varchar(50)不为空,字段2 varchar(45)不为空)

您可以这样做:

 for(int i=0;i<db.getColumns_number();i++){  
       if(i!=0){
          req+=", ";
       }
       req+= db.getField()+" "+db.getType()+"("+db.getSize()+")" +" "+db.getNullabilité();
       //req+= ((i!=0)?", ":"") + db.getField()+" "+db.getType()+"("+db.getSize()+")" +" "+db.getNullabilité();
       //req+= db.getField()+" "+db.getType()+"("+db.getSize()+")" +" "+db.getNullabilité() + ((i != (db.getColumns_number()-1))?",":"");
 } 

对于(inti=0;i您只需使用以下代码

if(i<db.getColumns_number()){
    //add ","
}
如果(i尝试以下代码:

String req="CREATE TABLE " +db.getTable_Name()+" (";
         for(int i=0;i<db.getColumns_number();i++){  
             req+= db.getField()+" "+db.getType()+"("+db.getSize()+")" +" "+db.getNullabilité();
             //add comma until is not last column
             if (i < (db.getColumns_number()-1)) {
                req+=",";
             }
         } 

req+=")";
String req=“CREATE TABLE”+db.getTable_Name()+”(”;

对于(int i=0;i,您可以简单地切换添加逗号的方式。例如:

String req = "CREATE TABLE " + db.getTable_Name() + " (";
for (int i = 0; i < db.getColumns_number(); i++) {
    req += (i > 0 ? ", " : "") + db.getField() + " " + db.getType() + "(" + db.getSize() + ")" + " " + db.getNullabilité();
}

req += ")";
String req=“CREATE TABLE”+db.getTable_Name()+”(”;
对于(int i=0;i0?,“:”)+db.getField()+“+db.getType()+”(“+db.getSize()+”)+“+db.getNullabilité()”;
}
请求+=”;

这将检查我们是否在第一个索引之后。如果我们在第一个索引之后,我们会在开始处添加一个逗号。如果它是第一个索引,我们不会添加任何内容。

但最后您会有一个“,”?@ChawqiHajar否,因为这会将
添加到列描述的开头,而不是结尾,并且不会对第一列描述执行此操作。