Java中调用存储过程 -- Mybatis

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>

猜你喜欢

转载自blog.csdn.net/li_tiantian/article/details/84634290
今日推荐