開始之前
1、搭建好mybatis環境並建立如下的表和對應的實體類
------------------------------------------------------------------------------------------------------
public class TUserPO {
private Integer userId;
private String userName;
private Integer userAge;
// 省略相應的get/set
}
2、建立如下存儲過程
DELIMITER $$ -- 修改默認結束符
CREATE PROCEDURE getuserbyid(IN u_id INT, OUT u_name VARCHAR(255), OUT u_age INT)
COMMENT '根據id獲取用戶名'
BEGIN
SELECT user_name, user_age FROM t_user WHERE user_id = u_id;
END $$
DELIMITER ; -- 恢復默認結束符
3、mapper文件和dao層接口
<select id="getUserById" resultType="map" statementType="CALLABLE" parameterMap="getUserByIdParamMap">
{call getuserbyid(?, ?, ?)} <!-- 剛剛創建的存儲過程有3個參數 -->
</select>
<parameterMap type="java.lang.Integer" id="getUserByIdParamMap">
<parameter property="userId" mode="IN" jdbcType="INTEGER" javaType="int"/>
</parameterMap>
Map<String, Object> getUserById(@Param("userId")Integer userId);
測試及結果
@Test
public void getUserByIdTest() {
Map<String, Object> map = userMapper.getUserById(2);
System.out.println(map.toString());
}
{user_name=李四, user_age=20}