您的位置:首页 > 数据库 > MySQL

mybatis调用mysql存储过程(返回值问题)

2014-09-28 19:04 477 查看
一、xml配置文件有两种写法
    1、

    <select id="getSeedValue" parameterMap="seedMap" statementType="CALLABLE">

        {call PROC_SEQ_SEED_GET(?,?,?,?,?)}

    </select>

    <parameterMap id="seedMap" type="java.util.Map">

        <parameter property="netId" jdbcType="BIGINT" mode="IN" />

        <parameter property="compId" jdbcType="BIGINT" mode="IN" />

        <parameter property="seedType" jdbcType="SMALLINT" mode="IN" />

        <parameter property="seedDate" jdbcType="VARCHAR" mode="IN" />

        <parameter property="seedValue" jdbcType="BIGINT" mode="OUT" />

    </parameterMap>

    2、

<select id="getSeedValue" parameterType="java.util.Map"

        statementType="CALLABLE" >

        {call

        PROC_SEQ_SEED_GET(

        #{netId,mode=IN,jdbcType=BIGINT},

        #{compId,mode=IN,jdbcType=BIGINT},

        #{seedType,mode=IN,jdbcType=BIGINT},

        #{seedDate,mode=IN,jdbcType=VARCHAR},

        #{seedValue,mode=OUT,jdbcType=BIGINT}

        )}

    </select>

    注:jdbcType是mysql数据库的类型,不是java的基本类型 statementType="CALLABLE"为必填项

二、java中的调用

        Map<String, Object> map = new HashMap<String, Object>();

        map.put("netId", PubMethod.isEmpty(net_id) ? 0L : net_id);

        map.put("compId", comp_id == null ? 0l : comp_id);

        map.put("seedType", seed_type);

        map.put("seedDate", PubMethod.getCurSysDate("yyyyMMdd"));

        this.parTaskRecordMapper.getSeedValue(map);

        String seed_value = "";

        if (map != null) {

            seed_value = String.valueOf(map.get("seedValue") != null ? map.get("seedValue") :"");

        }
注:存储过程的返回值不用新的map接受,值回传在参数里面的map里面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis spring map