天天看點

spring的jdbcTemplate調用存儲過程

 假如我們有P_GET_TOPIC_NUM這一個存儲過程,有兩個參數,第一個參數userId是傳進去的,第二個參數是傳出來的,舉例如下:

public int getUserTopicNum(final int userId) {   
    String sql = "{call P_GET_TOPIC_NUM(?,?)}";   
    //使用   Object execute(String callString, CallableStatementCallback action)接口   
    Object obj = getJdbcTemplate().execute(sql,new CallableStatementCallback(){   
        public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {   
            cs.setInt(1,userId);   
            cs.registerOutParameter(2, Types.INTEGER);   
            cs.execute();   
            return new Integer(cs.getInt(2));   
        }      
    });   
    return ((Integer)obj).intValue();   
}