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) #调用父类的方法 # ...
随机推荐
- Jenkins参数化构建(二)之 Maven command line使用Jenkins参数
安装Extened Choice Parameter插件 General模块选择‘参数化构建过程’ 3. maven command line中使用 clean test -DsuiteXmlFi ...
- IIS客户端没有权限
运行CMDicacls c:\ /setintegritylevel M
- 【BZOJ】1831: [AHOI2008]逆序对
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1831 考虑$-1$的位置上填写的数字一定是不降的. 令${f[i][j]}$表示$DP$到 ...
- P3853 [TJOI2007]路标设置
传送门 思路: 类似于数列分段的二分查找答案.设目前的 mid 是一个最小的“空旷指数”,那么在 sum 数组(路标数组)里每两个相邻间的路标距离一定要小于等于目前的 mid , 如果大于,那就必须使 ...
- Redis 个人理解总结
一.什么是Redis ? Redis(remote dictionnary server)是一个key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可 ...
- 总要先爬出坑的JEE架构
先来看看官网对它的定义. Java平台企业版(Java EE)是社区驱动的企业软件的标准.Java EE是使用Java Community Process开发的,其中包括来自行业专家,商业和开源组织, ...
- js 垃圾回收机制和引起内存泄漏的操作
垃圾回收机制 JS中最常见的垃圾回收方式是标记清除. 工作原理:是当变量进入环境时,将这个变量标记为“进入环境”.当变量离开环境时,则将其标记为“离开环境”.标记“离开环境”的就回收内存. 工作流程: ...
- cocos2dx AudioEngine在Android7上播放音效卡顿问题处理
1.此问题在cocos2dx 3.13/3.14版本(其它版本没有测试过)在Android7中使用AudioEngine的play2d函数播放音效时出现. 调试时出现如下提示: 2.论坛中相关讨论帖地 ...
- 分析:java.lang.OutOfMemoryError: Java heap space
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Hashta ...
- 餐E评echarts
所需要的数据结构 option = { num:1212,//商圈数 numRate:34%,//商圈增长率 activation:1231,//活跃度 activationRate:23%,//活跃 ...