强大的Ibatis中如何调用oracle存储过程,细节很重要.
1.存储过程:p_test(in,in,out,out)
2.sqlMap.xml
<parameterMap id="procParam" class="java.util.HashMap">
<parameter property="param1" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
<parameter property="param2" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
<parameter property="param3" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
<parameter property="param4" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
</parameterMap>
<procedure id="proc" resultClass="java.util.HashMap" parameterMap="procParam">
{ call p_test(?,?,?,?) }
</procedure>
注:jdbcType="VARCHAR" ,VARCHAR不要写成小写哦!
3.java代码
String p1="";
String p2="";
String p3=""; //输出参数
String p4=""; //输出参数
Map param=new HashMap();
param.put("p1", p1);
param.put("p2", p2);
param.put("p3", p3);
param.put("p4", p4);
List temp=ibatisDaoHelper.queryForList("namespace.proc", param);
拿到输出参数
p3=param.get("p3").toString();
p4=param.get("p4").toString();