Skip to content

Instantly share code, notes, and snippets.

@aziz781
Created November 3, 2011 13:21
Show Gist options
  • Save aziz781/1336459 to your computer and use it in GitHub Desktop.
Save aziz781/1336459 to your computer and use it in GitHub Desktop.
Java, Spring JDBC : How to call Stored Procedure with IN and OUT parameters
import java.util.Date;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.object.StoredProcedure;
public class MyStoredProcedure extends StoredProcedure{
public MyStoredProcedure(String procedureName,DataSource dataSource) {
super(new JdbcTemplate(dataSource), procedureName);
// in parameters
declareParameter(new SqlParameter("orderDate", Types.DATE));
declareParameter(new SqlParameter("orderCode", Types.VARCHAR));
// out parameters
declareParameter(new SqlOutParameter("p_message", Types.VARCHAR));
declareParameter(new SqlOutParameter("p_no_of_insurance_claims", Types.INTEGER));
declareParameter(new SqlOutParameter("p_average_no_of_days_to_quote", Types.DOUBLE));
declareParameter(new SqlOutParameter("p_no_of_late_quotes", Types.INTEGER));
declareParameter(new SqlOutParameter("p_late_quotes_percent", Types.DOUBLE));
declareParameter(new SqlOutParameter("p_score", Types.DOUBLE));
// compile
compile();
}
protected void executeProc(Date orderDate, String orderCode)
{
HashMap<String, Object> input = new HashMap<String, Object>();
input.put("orderDate",orderDate);
input.put("dealerCode", orderCode);
// call Stored procedure
Map<String, Object> output= execute(input);
// output
String p_message = (String)output.get("p_message");
Integer p_no_of_insurance_claims = (Integer)output.get("p_no_of_insurance_claims");
Double p_average_no_of_days_to_quote = (Double)output.get("p_average_no_of_days_to_quote");
Integer p_no_of_late_quotes = (Integer)output.get("p_no_of_late_quotes");
Double p_late_quotes_percent = (Double)output.get("p_late_quotes_percent");
Double p_score = (Double)output.get("p_score");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment