/** * Convert a list of JDBC types, as defined in {@code java.sql.Types}, * to a List of SqlParameter objects as used in this package. */ public static List<SqlParameter> sqlTypesToAnonymousParameterList(@Nullable int... types) { if (types == null) { return new LinkedList<>(); } List<SqlParameter> result = new ArrayList<>(types.length); for (int type : types) { result.add(new SqlParameter(type)); } return result; }
@Override public SqlParameter createDefaultInParameter(String parameterName, CallParameterMetaData meta) { return new SqlParameter(parameterName, meta.getSqlType()); }
public MixedUpdater() { setSql(UPDATE_OBJECTS); setDataSource(dataSource); declareParameter(new SqlParameter(Types.NUMERIC)); declareParameter(new SqlParameter(Types.NUMERIC, 2)); declareParameter(new SqlParameter(Types.VARCHAR)); declareParameter(new SqlParameter(Types.BOOLEAN)); compile(); }
public UnnamedParameterStoredProcedure(DataSource ds) { super(ds, "unnamed_parameter_sp"); declareParameter(new SqlParameter(Types.INTEGER)); compile(); }
public IntIntUpdater() { setSql(UPDATE_INT_INT); setDataSource(dataSource); declareParameter(new SqlParameter(Types.NUMERIC)); declareParameter(new SqlParameter(Types.NUMERIC)); compile(); }
public AddInvoice(DataSource ds) { setDataSource(ds); setSql(SQL); declareParameter(new SqlParameter("amount", Types.INTEGER)); declareParameter(new SqlParameter("custid", Types.INTEGER)); declareParameter(new SqlOutParameter("newid", Types.INTEGER)); compile(); }
public AddInvoiceUsingObjectArray(DataSource ds) { setDataSource(ds); setSql(SQL); declareParameter(new SqlParameter("amount", Types.INTEGER)); declareParameter(new SqlParameter("custid", Types.INTEGER)); declareParameter(new SqlOutParameter("newid", Types.INTEGER)); compile(); }
@Test public void parametersSetWithList() { DataSource ds = new DriverManagerDataSource(); operation.setDataSource(ds); operation.setSql("select * from mytable where one = ? and two = ?"); operation.setParameters(new SqlParameter[] { new SqlParameter("one", Types.NUMERIC), new SqlParameter("two", Types.NUMERIC)}); operation.afterPropertiesSet(); operation.validateParameters(new Object[] { 1, "2" }); assertEquals(2, operation.getDeclaredParameters().size()); }
@Test public void testAddInvoiceProcWithoutMetaDataUsingArrayParams() throws Exception { initializeAddInvoiceWithoutMetaData(false); SimpleJdbcCall adder = new SimpleJdbcCall(dataSource).withProcedureName("add_invoice"); adder.declareParameters( new SqlParameter("amount", Types.INTEGER), new SqlParameter("custid", Types.INTEGER), new SqlOutParameter("newid", Types.INTEGER)); Number newId = adder.executeObject(Number.class, 1103, 3); assertEquals(4, newId.intValue()); verifyAddInvoiceWithoutMetaData(false); verify(connection, atLeastOnce()).close(); }
@Test public void testAddInvoiceFuncWithoutMetaDataUsingArrayParams() throws Exception { initializeAddInvoiceWithoutMetaData(true); SimpleJdbcCall adder = new SimpleJdbcCall(dataSource).withFunctionName("add_invoice"); adder.declareParameters( new SqlOutParameter("return", Types.INTEGER), new SqlParameter("amount", Types.INTEGER), new SqlParameter("custid", Types.INTEGER)); Number newId = adder.executeFunction(Number.class, 1103, 3); assertEquals(4, newId.intValue()); verifyAddInvoiceWithoutMetaData(true); verify(connection, atLeastOnce()).close(); }
public NullArg(DataSource ds) { setDataSource(ds); setSql(SQL); declareParameter(new SqlParameter("ptest", Types.VARCHAR)); compile(); }
public MissingParameterStoredProcedure(DataSource ds) { setDataSource(ds); setSql("takes_string"); declareParameter(new SqlParameter("mystring", Types.VARCHAR)); compile(); }
public IntUpdater() { setSql(UPDATE_INT); setDataSource(dataSource); declareParameter(new SqlParameter(Types.NUMERIC)); compile(); }
public StringUpdater() { setSql(UPDATE_STRING); setDataSource(dataSource); declareParameter(new SqlParameter(Types.VARCHAR)); compile(); }
public GeneratedKeysUpdater() { setSql(INSERT_GENERATE_KEYS); setDataSource(dataSource); declareParameter(new SqlParameter(Types.VARCHAR)); setReturnGeneratedKeys(true); compile(); }
@Test public void testUnnamedParameterHandling() throws Exception { final String MY_PROC = "my_proc"; SimpleJdbcCall sproc = new SimpleJdbcCall(dataSource).withProcedureName(MY_PROC); // Shouldn't succeed in adding unnamed parameter thrown.expect(InvalidDataAccessApiUsageException.class); sproc.addDeclaredParameter(new SqlParameter(1)); }
public StoredProcedureConfiguredViaJdbcTemplate(JdbcTemplate t) { setJdbcTemplate(t); setSql(SQL); declareParameter(new SqlParameter("intIn", Types.INTEGER)); declareParameter(new SqlOutParameter("intOut", Types.INTEGER)); compile(); }
public SqlTypeValueStoredProcedure(DataSource ds) { setDataSource(ds); setSql(SQL); declareParameter(new SqlParameter("in", Types.ARRAY, "NUMBERS")); declareParameter(new SqlOutParameter("out", Types.VARCHAR)); compile(); }
public ParameterMapperStoredProcedure(DataSource ds) { setDataSource(ds); setSql(SQL); declareParameter(new SqlParameter("in", Types.VARCHAR)); declareParameter(new SqlOutParameter("out", Types.VARCHAR)); compile(); }
@Test public void declareParameterAfterCompile() { operation.setDataSource(new DriverManagerDataSource()); operation.setSql("select * from mytable"); operation.compile(); exception.expect(InvalidDataAccessApiUsageException.class); operation.declareParameter(new SqlParameter(Types.INTEGER)); }