0%

10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象

10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象

创建存储过程

在之前创建的mybatis数据库中创建一个根据id查询tb_user表对应数据的存储过程,SQL脚本如下:

1
2
3
4
5
6
7
8
drop procedure if exists select_user_by_id;
delimiter $$
create procedure select_user_by_id(IN in_id INTEGER)
begin
select id,name,sex,age from tb_user where id=in_id;
end
$$
delimiter ;

创建映射标签

UserMapper.xml中加入调用名为”select_user_by_id“的存储过程的select元素,如下代码所示:

1
2
3
4
5
6
<select
id="selectUserById"
parameterType="int"
resultType="domain.User"
statementType="CALLABLE"> {call select_user_by_id(#{id,mode=IN})}
</select>

mapper接口方法

1
User selectUserById(Integer id);

运行效果

1
2
3
4
5
DEBUG [main] ==>  Preparing: {call select_user_by_id(?)} 
DEBUG [main] ==> Parameters: 1(Integer)
DEBUG [main] <== Total: 1
DEBUG [main] <== Updates: 0
User [id=1, name=小明, sex=男, age=21]

原文链接: 10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象