Friday, August 17, 2007

StoreProcedures en IBatis

Creación de un store procedure en archivo XML

Se definen los parametros del store procedure, los parametros de entrada como los de salida.

class="java.util.HashMap" <-- HashMap con los parametros.
id="parametrosStoreProcedure" <-- El nombre de la estructura de parametros.



<parameterMap id="parametrosStoreProcedure" class="java.util.HashMap">
<parameter property="Parametro1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
<parameter property="ParametroSalida" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
</parameterMap>


Construimos la llamada al store procedure no sin olvidar pasar los parametros al store procedure parameterMap="parametrosStoreProcedure".

parameterMap="parametrosStoreProcedure" <-- Nombre de los parametros a pasar que es el id de parameterMap id="StoreProcedure" <-- Identificador o nombre del StoreProcedure.



<procedure id="StoreProcedure" parameterMap="parametrosStoreProcedure">
{ call NombreStoreProcedure(?,?) }
</procedure>


Ahora pasamos al código en Java.
Así es como se mandaría ejecutar el store procedure en código de Java.



public String validaICVE(String valor1) throws Exception, DaoException{
HashMap map = new HashMap();
map.put("Parametro1",valor1);
try{
getSqlMapExecutor().queryForObject("extracListSelecICVE", map);
return map.get("ParametroSalida").toString(); //<-- (1)
}catch(DaoException ed){
throw new DaoException("error del DaoException");
}catch(Exception e){
throw new Exception("Error de Exception");
}
}


(1) Obtenemos el parámetro de salida después de ejecutar el store procedure.

No comments: