您的位置:首页 > 其它

mybatis 存储过程使用

2017-10-25 17:25 211 查看
存储过程。。暂时还不会写。

先说下使用吧

暂时使用的ORM框架就一个Mybatis就用这个讲解。

<select id="isInsert" statementType="CALLABLE" parameterType="java.util.Map" >
<![CDATA[
call PROC_ST_SCOPE_CHECK(#{scopeCataId,jdbcType=VARCHAR,mode=IN},
#{errNum,jdbcType=INTEGER,mode=OUT},#{errMsg,jdbcType=VARCHAR,mode=OUT})
]]>
</select>

(#{scopeCataId,jdbcType=VARCHAR,mode=IN},
#{errNum,jdbcType=INTEGER,mode=OUT},#{errMsg,jdbcType=VARCHAR,mode=OUT})
这些为传入的参数。

in代表的是传入的数据无法被修改。是调用时已经存在的数据。

out代表的是传入的数据只能在存储过程中被赋值,并且返回。

inout代表传入的数据可以时存在的数据也可以被修改然后返回。

其实有一个问题。

就是并没有设置返回值,那么我们要去哪里寻找这些修改后返回的数据呢。

答案只有一个。

就是你传入的对象引用,当使用这个调用过程后,你的对象引用也会相应的修改。

Map<String, Object> param = new HashMap<String, Object>();//初始化传入数据
param.put("scopeCataId", stScopeCataId);
param.put("errNum", null);
param.put("errMsg", null);
stScopeParamService.isInsert(param);//调用存储过程


这是业务上的代码。

debugger看下。

第一个断点 未调用存储过程

第二个断点  调用完存储过程

所以返回的值都在你传入的对象引用里面了。。

有空在写下存储过程怎么写=-=!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 存储过程