mybatis调用存储过程的两种方式
先总结和说明一下注意点:
1.如果传入的某个参数可能为空,必须指定jdbcType
2.当传入map作为参数时,必须指定JavaType
3.如果做动态查询(参数为表名,sql关键词),可以使用${}原样输出,不会被修改或转义.(不会被mybatis创建预处理语句属性,并安全的设置值)
1.设置传入参数为parameterMap
<select id="cancelReg" statementType="CALLABLE" parameterMap="param" resultType="java.lang.String">
{call P_mzgh_yy_cancel(?,?,?)}
</select > <parameterMap id="param" type="java.util.HashMap" >
<parameter property="yyid" jdbcType="INTEGER" javaType="int" mode="IN"/>
<parameter property="out_return" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
<parameter property="errortext" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
</parameterMap >
1.2调用
Map<String,Object> map = new HashMap<String,Object>();
//入参
map.put("yyid", 756704);
//返回值变量
map.put("out_return", null);
map.put("errortext", null);
//执行sql
regService.cancelReg(map);
//获取返回结果
String result = map.get("out_return").toString();
2.设置传入参数为parameterType
<select id="cancelReg" statementType="CALLABLE" parameterType="map" resultType="java.lang.String">
{call P_mzgh_yy_cancel(#{yyid,mode=IN,jdbcType=INTEGER},#{out_return,mode=OUT,jdbcType=VARCHAR},#{errortext,mode=OUT,jdbcType=VARCHAR})}
</select >
2.2调用同1相同
mybatis调用存储过程的两种方式的更多相关文章
- Mysql 调用存储过程的两种方式
一,使用call语句: 如:创建 call 调用: 使用占位符,通过prepare,execute调用:
- MyBatis配置数据源的两种方式
---------------------siwuxie095 MyBatis 配置数据源的两种方式 1.配置方 ...
- 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
- MyBatis获取参数值的两种方式
MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 ...
- mybatis批量保存的两种方式(高效插入)
知识点:mybatis中,批量保存的两种方式 1.使用mybatis foreach标签 2.mybatis ExecutorType.BATCH 参考博客:https://www.jb51.net/ ...
- Unity调用Android的两种方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...
- Spring容器自动调用方法的两种方式
先看一个Spring中Bean的实例化过程: 1.配置文件中指定Bean的init-method参数 <bean class="com.jts.service.UserService& ...
- 软件调用QML的两种方式
一.两种方式 二.方式1[对窗口的控制权在QML] 三.方式2[对窗口的控制权在C++]
- python之子类调用父类的两种方式
第一种方式 直接在子类中调用父类名: Vehicle.__init__(self,name,speed,load,power)#调用父类的实例 Vehicle.run(self) #调用父类的方法 # ...
随机推荐
- EFI环境下的Ubuntu&Win10双系统安装
因为是win10是EFI启动的,所以网上的easyBCD方法就不可以用了,这里用到的不是ultraiso软碟通,用的哪个忘了 不过只要能写入U盘做成启动盘就ok 具体参考的是https://blog. ...
- Wordpress搭建
Install Environment apt install apache2 php mysql-server apt install php-mysql php-fpm Config mysql ...
- cookie 简单用法
cookie 简单用法 //当前登录人的组织Id HttpCookie SingleValueCookie = new HttpCookie("DepartmentId", &qu ...
- 不要再混淆js的substring和substr了!(附js所有字符串方法)
一.字符串操作方法 js中字符串方法操作有很多:concat.indexOf.... 这里只要介绍两种经常混淆的字符串截取方法:substring.substr 二.从例子入手 let str = ' ...
- _itemmod_add
命令._add items XXX 为目标添加一组物品 `comment` 备注 `categoryId` 组ID `entry` 物品entry `count`数量
- _itemmod_extract_enchant随机附魔提取
技能 脚本 spell_extract_enchant 提取一条随机FM 随机FM提取 物品脚本:1.spell_extract_enchant 提取一条随机FM2.spell_extract_enc ...
- 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1798 大概就是维护两个标记的线段树模板题. 设定优先级,先乘后加(只是相对的),$push ...
- python中的3目运算(3元表达式)
js中 ret = 1 == 1 ? 'true' : 'false' python中 ret = 'true' if 1==1 else 'false'
- VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...
- Missing artifact com.oracle:ojdbc6:jar:10.2.0.4.0问题解决 ojdbc包pom.xml出错
遇到的问题:ojdbc.jar包出错 原因:因为oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,只能通过配置本地库才能加载到项目中去. 解决办法: (前提是安装好了m ...