-1

独自のORMフレームワークを作成しようとしています。オブジェクトからarrayListに値を取得し、それらを一度に保存しようとしています。それらをすべて保存するためにforループを作成する必要がありますが、作成方法がわかりません。

prepareteState = connect.prepareStatement(Query);
for (int y = 1; y <= obs.size()  ; y++) {
    for(Object obj : obs){
        prepareteState.setObject(y, obj);
        System.out.println(Query);
        System.out.println(prepareteState.toString());
    }
}
prepareteState.execute();
4

1 に答える 1

0

良いアドバイスをありがとう、しかし、私は解決策を見つけました:)それは最初のアイデアとは少し異なりますが、私にとってはうまくいきます:)prepareStateとsetObjectを1つずつ使用する代わりにStringBuilderを使用して文字列を作成してクエリを実行します

private String makeInsertQuery(List<String> listOfColumnsNames, List<Object> listOfParameters, String tableName){
    StringBuilder columns = new StringBuilder();
    StringBuilder parameters = new StringBuilder();
    String query = null;

    if(listOfColumnsNames != null && listOfColumnsNames.size() != 0 && listOfParameters != null && listOfParameters.size() != 0 && tableName != null){
        for(String string : listOfColumnsNames){
            columns.append(string + ",");
        }
        columns.deleteCharAt(columns.length() - 1);

        for(Object object : listOfParameters){
            parameters.append ("'" + object + "'" + ",");
        }
        parameters.deleteCharAt(parameters.length() - 1);

        query = "INSERT " + "INTO " + tableName +  " ( " + columns.toString() + " ) " + " VALUES " + "( " + parameters.toString() + " )" ; 
    }
    //TODO if you need check for null 
    return query;
}
于 2012-09-24T22:16:43.313 に答える