使用#{}会将传入的参数用引号包裹例如:‘a’
使用${}传入的参数不会用引号包裹 例如 a
在mybatis中编译存储过程
下面传入的${runCode}就是传入的存储过程
<update id="createProduce" parameterType="com.hex.dop.eams.config.model.Ruleset">
${runCode}
</update>
${runCode}:传入值如下所示可以在页面编写传入数据库执行
create or replace procedure dd(x in varchar,y in varchar,z in varchar,m in Date)
as
begin
insert into DOP_EAMS_RE_RULESET(DETAIL_NO,RULE_NO,RULE_NAME,UPDATE_TIME)
values (x,y,z,m);
commit;
end dd;
下面是调用存储过程:
CALLABLE是必须写的${runName}是要执行的存储过程的名称
下面的foreach标签中是传入的参数
<select id="execProduce1" parameterType="map" statementType="CALLABLE">
{
call ${runName}(
<foreach collection="listParams" item="item" index="index" separator="," >
${item}
</foreach>
)
}
</select>