private boolean regiesterOut(int index) throws SQLException { EqlParamPlaceholder.InOut inOut = eqlRun.getPlaceHolders()[index].getInOut(); if (EqlUtils.isProcedure(eqlRun.getSqlType()) && inOut != EqlParamPlaceholder.InOut.IN) ((CallableStatement) ps).registerOutParameter(index + 1, Types.VARCHAR); return inOut == EqlParamPlaceholder.InOut.OUT; }
private Object getParamByIndex(int index) { EqlParamPlaceholder[] placeHolders = eqlRun.getPlaceHolders(); if (index < placeHolders.length && EqlUtils.isProcedure(eqlRun.getSqlType()) && placeHolders[index].getInOut() == EqlParamPlaceholder.InOut.OUT) return null; Object[] params = eqlRun.getParams(); if (params != null && index < params.length) return params[index]; throw new EqlExecuteException("[" + eqlRun.getSqlId() + "]执行过程中缺少参数"); }
private Object findParamByName(int index) { String varName = eqlRun.getPlaceHolders()[index].getPlaceholder(); ExpressionEvaluator evaluator = eqlRun.getEqlConfig().getExpressionEvaluator(); Object property = evaluator.eval(varName, eqlRun); if (property != null) return property; String propertyName = EqlUtils.convertUnderscoreNameToPropertyName(varName); return Objects.equal(propertyName, varName) ? property : evaluator.eval(propertyName, eqlRun); }
private Object findParamBySeq(int index) { return getParamByIndex(eqlRun.getPlaceHolders()[index - 1].getSeq() - 1); }