MyBatis学习笔记(五)——入参为HashMap、MyBatis调用存储过程执

本文详细解析了如何在MyBatis中使用HashMap作为参数调用存储过程,包括输入参数的匹配与替换,以及输出参数的获取方式。特别关注了不同JDBC驱动的兼容性问题,如ojdbc6.jar与ojdbc7.jar的区别,并介绍了mybatis不支持某些类型时的错误处理。此外,还提供了从mapper.xml到接口及测试方法的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入对象为HashMap:
where stuage= #{stuAge}

用map中key的值 匹配 占位符#{stuAge},如果匹配成功 就用map的value替换占位符

mybatis调用存储过程

<select id="queryCountByGradeWithProcedure" statementType="CALLABLE"  parameterType="HashMap" >
	{
		CALL queryCountByGradeWithProcedure(
			#{gName,jdbcType=VARCHAR,mode=IN},
			#{scount,jdbcType=INTEGER,mode=OUT}
		) 
	}	
</select>

其中 通过statementType="CALLABLE"设置SQL的执行方式是存储过程。 存储过程的输入参数gName需要通过HashMap来指定
在使用时,通过hashmap的put方法传入输入参数的值;通过hashmap的Get方法 获取输出参数的值。
要注意Jar问题:ojdbc6.jar不能在 调存储过程时 打回车、tab,但是ojdbc7.jar可以。

如果报错: No enum constant org.apache.ibatis.type.JdbcType.xx,则说明mybatis不支持xx类型,需要查表。

存储过程 无论输入参数是什么值,语法上都需要 用map来传递该值;

只要 是 ,则增删改都需要手工commit ;

顺序:

mapper.xml->mapper接口->测试方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值