mybatis调用SqlServer存储过程
时间: 2023-07-07 20:45:07 浏览: 185
springboot+mybatis+sqlserver
MyBatis可以通过`select`或`update`标签调用SqlServer存储过程。下面是一个调用存储过程的示例:
```xml
<select id="callStoredProcedure" statementType="CALLABLE" parameterType="map" resultType="resultMap">
EXEC dbo.retrieve_user_by_id
@id = #{userId, mode=IN, jdbcType=INTEGER},
@name = #{userName, mode=OUT, jdbcType=VARCHAR}
</select>
```
其中,`id`是MyBatis中的映射器方法名,`statementType`指定了调用存储过程的方式,`parameterType`和`resultType`分别指定了输入参数和输出结果的类型。`EXEC`后面跟的是存储过程名称,`@id`和`@name`是存储过程的输入和输出参数名称,`#{}`中的参数是MyBatis中的占位符,`mode`指定了参数的类型(输入还是输出)、模式(IN还是OUT)和数据类型。
需要注意的是,SqlServer存储过程的参数名称是以`@`开头的,而MyBatis的占位符名称是以`#`或`${}`开头的。因此,在调用存储过程时,需要将存储过程参数名称前面的`@`去掉,并在MyBatis的占位符中添加`mode`和`jdbcType`属性来指定参数类型和数据类型。
阅读全文