spring调用存储过程
1.繼承StoredProcedure
org.springframework.jdbc.object.StoredProcedure是對應(yīng)存儲過程調(diào)用的操作對象,它通過其父類
org.springframework.jdbc.object.SqlCall獲得相應(yīng)的底層API支持(CallableStatementCreator), 然
后在此基礎(chǔ)之上構(gòu)建了調(diào)用存儲過程的執(zhí)行方法。
2、重寫父類的execute()方法。將存儲過程的參數(shù)封裝成Map類型的傳入該方法
.
3、寫一個方法來封裝存儲過程的方法及把參數(shù)放到Map里面.
如:
??Map paraMap = new HashMap();
??paraMap.put(IN_PARAMETER_NAME, tableName);
??paraMap.put(INOUT_PARAMETER_NAME, v);
注意:key值一定要與前面構(gòu)造函數(shù)里面聲明的參數(shù)一致。
4、execute()返回的map值要取到里面的value值,可以用前面構(gòu)造函數(shù)聲明時候用到的key值去取。
如:(String)resultMap.get(OUT_PARAMETER_NAME);就得到了存儲過程的返回值。
示例如下:
public class xxxxProcedure extends StoredProcedure {
?? ?private static final String PROCEDURE_NAME = "xxxx";
??? protected xxxxProcedure() {
?? ??? ?/* empty */
??????? }
?? ?
?? ?public xxxxProcedure(JdbcTemplate jdbcTemplate) {
?? ??? ?super(jdbcTemplate, PRO_NAME);
?? ??? ?declareParameter(new SqlParameter("xxxx", Types.VARCHAR));
?? ??? ?declareParameter(new SqlParameter("xxxx", Types.VARCHAR));
?? ??? ?declareParameter(new SqlParameter("xxxx", Types.NUMERIC));
?? ?}
?? ?public void execute(String xxxx,String xxxx,int xxxx) {
?? ??? ?Map<String, Object> paramsIn = new HashMap<String, Object>();
?? ??? ?paramsIn.put("xxxx", xxxx);
?? ??? ?paramsIn.put("xxxx", xxxx);
?? ??? ?paramsIn.put("xxxx", xxxx);
?? ??? ?super.execute(paramsIn);
?? ?}
}
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/archive/2013/01/23/2873763.html
總結(jié)
以上是生活随笔為你收集整理的spring调用存储过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jms在jboss上的简单应用
- 下一篇: 数据库分区表的使用