-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()

しかし、変更すると、次のようになります: なぜ文字列 sql が変更System.out.println("sql="+sql);され ないのですか?System.out.println("targets="+targets);targets=kadnum,

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 に答える