package dbfit.util.sql; import static dbfit.util.LangUtils.join; import static dbfit.util.LangUtils.repeat; public class PreparedStatements { private static String buildParamList(int numberOfParameters) { return join(repeat("?", numberOfParameters), ", "); } public static String buildStoredRoutineCallText( String name, int numberOfParams, boolean hasReturnValueParam) { int numArgs = numberOfParams - (hasReturnValueParam ? 1 : 0); String resultAssignment = hasReturnValueParam ? "? = " : ""; String voidInvocation = name + "(" + buildParamList(numArgs) + ")"; return "{ " + resultAssignment + "call " + voidInvocation + " }"; } }