@Override protected boolean checkClosed() { if (super.checkClosed()) { // if the session was re-connected, re-prepare the statement ArrayList<? extends ParameterInterface> oldParams = command.getParameters(); command = conn.prepareCommand(sqlStatement, fetchSize); ArrayList<? extends ParameterInterface> newParams = command.getParameters(); for (int i = 0, size = oldParams.size(); i < size; i++) { ParameterInterface old = oldParams.get(i); Value value = old.getParamValue(); if (value != null) { ParameterInterface n = newParams.get(i); n.setValue(value, false); } } return true; } return false; }
/** * Adds the current settings to the batch. */ @Override public void addBatch() throws SQLException { try { debugCodeCall("addBatch"); checkClosed(); try { ArrayList<? extends ParameterInterface> parameters = command.getParameters(); int size = parameters.size(); Value[] set = new Value[size]; for (int i = 0; i < size; i++) { ParameterInterface param = parameters.get(i); Value value = param.getParamValue(); set[i] = value; } if (batchParameters == null) { batchParameters = New.arrayList(); } batchParameters.add(set); } finally { afterWriting(); } } catch (Exception e) { throw logAndConvert(e); } }
/** * Format the parameter list. * * @param parameters the parameter list * @return the formatted text */ public static String formatParams( ArrayList<? extends ParameterInterface> parameters) { if (parameters.size() == 0) { return ""; } StatementBuilder buff = new StatementBuilder(); int i = 0; boolean params = false; for (ParameterInterface p : parameters) { if (p.isValueSet()) { if (!params) { buff.append(" {"); params = true; } buff.appendExceptFirst(", "); Value v = p.getParamValue(); buff.append(++i).append(": ").append(v.getTraceSQL()); } } if (params) { buff.append('}'); } return buff.toString(); }