-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

感谢您的好建议,但是,我找到了解决方案 :) 它与第一个想法有点不同,但是对我来说效果很好:) 我正在使用 StringBuilder 来制作 String 并执行查询,而不是一个一个地使用 prepareState 和 setObject

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 回答