Java中调用存储过程 -- Mybatis
public interface XXXMapper {
/*
* 1.没有出参(返回值,void) 返回不了值,返回值都封装在入参的实体类或Map中(引用类型)
* 原因:存过的入参、出参都在java调用的入参中
* 2.Map里面封装了出参和入参
* 3.引用类型可以直接修改里面的数据,Map属于引用类型(map中的每个参数,必须是引用类型)
*
* eg:
* Map<String, String> map = new HashMap<String, String>();
map.put("hostIp", "XX.XX.XX.XX");
map.put("outFlag", new String());
map.put("outServer", new String());
*/
public void insertTaskNoc(Map<String, String> map);
public void getMinQueueServer(ParamEntity paramEntity);
}
public class ParamEntity {
private String outFlag;
private String outServer;
....
}
<!--
说明:
1.CIDP_BATCH_SERVICE.INSERTTASKNOC:存过名;
2.call 回调存过, mode的值代表输入、输出
-->
<select id="insertTaskNoc" statementType="CALLABLE" parameterType="java.util.Map">
{CALL CIDP_BATCH_SERVICE.INSERTTASKNOC(
#{hostIp, mode = IN, jdbcType = VARCHAR},
#{outFlag, mode = OUT, jdbcType = VARCHAR},
#{outServer, mode = OUT, jdbcType = VARCHAR}
)}
</select>
<select id="getMinQueueServer" statementType="CALLABLE" parameterType="com.itcast.test.ParamEntity">
{CALL CIDP_BATCH_SERVICE.GETMINQUEUESERVER(
#{outFlag, mode = OUT, jdbcType = VARCHAR},
#{outServer, mode = OUT, jdbcType = VARCHAR}
)}
</select>