Mybatis調用存儲過程

開始之前

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}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章