一、数据库存储过程:
create or replace procedure pro_check_balance_test(mer_id in varchar2, mer_date in varchar2, error_num out integer) as
v_par varchar2(8);
v_parvalue varchar2(2);
v_sql varchar2(1024);
v_ErrorCode number;
v_ErrorText varchar2(255);
begin
error_num := 3;
end;
二、dao接口层代码:
Map mrktcheck(Map map);
三、mybatis配置xml代码
<select id="mrktcheck" statementType="CALLABLE" parameterType="java.util.Map" resultType="java.util.Map"> <![CDATA[ {call pro_check_balance_test( #{merId,mode=IN,jdbcType=VARCHAR}, #{merDate,mode=IN,jdbcType=VARCHAR}, #{errorNum,mode=OUT,jdbcType=INTEGER} )} ]]> </select>
四、单元测试代码:
@Test public void mrktcheckTest(){ try { ProProductDao proProductDao = BeanContainerFactory .getBeanContainer(ProProductDao.class.getClassLoader()) .getBean(ProProductDao.class); Map<String, Object> mp = new HashMap<String, Object>(); mp.put("merId", "3"); mp.put("merDate", "3"); mp.put("errorNum", null); proProductDao.mrktcheck(mp); Object c = mp.get("errorNum"); } catch (Exception e) { }
五、注意点:
1. <![CDATA[ ]]> 标签的使用可以解决存储过程不识别的问题
2.如果不添加resultType="java.util.Map" 导致返回的map为空。