-2

我有一个代码:

for(int i=0;i<fList.size();i++){
    String targets="";
    String values="";
    String sql="INSERT INTO "+tableName+"("+targets+") VALUES("+values+")";
    Map<Column, String> attrs=fList.get(i).getAttributes();
    for(int j=0;j<columns.size();j++){
        if(columns.get(j).getName().equalsIgnoreCase("kadnum")){
            targets=targets+"kadnum,";
            System.out.println("targets:"+targets);
            values=values+attrs.get(columns.get(j))+",";
            System.out.println("values:"+values);
        }
        if(columns.get(j).getName().equalsIgnoreCase("support_num")){
            targets=targets+"support_num";
            values=values+attrs.get(columns.get(j))+",";
        }
    }
    System.out.println("sql="+sql);
}

然后出去:

INSERT INTO parcels () VALUES()

但是如果你改变System.out.println("sql="+sql);System.out.println("targets="+targets);得到:targets=kadnum, 为什么字符串sql不改变?

4

3 回答 3

2

您在向sql字符串添加任何内容之前创建targets字符串。所以在sql创建字符串时,targets字符串仍然是空的。sql稍后在最后创建字符串以解决此问题。

于 2013-01-01T13:42:13.207 回答
1

将 sql 的声明移到println.

 String sql="INSERT INTO "+tableName+"("+targets+") VALUES("+values+")";
 System.out.println("sql="+sql);
于 2013-01-01T13:40:31.660 回答
0
String sql="INSERT INTO "+tableName+"("+targets+") VALUES("+values+")";

应该在上面

System.out.println("sql="+sql);
于 2013-01-01T13:41:56.463 回答