Java中呼叫儲存過程 -- Mybatis
阿新 • • 發佈:2019-01-08
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>