一、直接看实例:
XML中:
<select id="manScheduleTable" statementType="CALLABLE" parameterType="String" resultType="java.util.LinkedHashMap">
exec [dbo].[App_man_schedule] #{params.line},#{params.class1},#{params.dept}
</select>
Dao接口里面:
List<Map<String, Object>> manScheduleTable(@Param("params")Map<String, Object> params);
这种情况,参数形式:#{params.line},需要加@Param注解,不然取不到值
注意:注解@Param的使用:顺便学习一下
一、必须使用@Param的情况:4种情况
1、重命名参数,如
User selectUser(@param(“name”)String personName);
<select id=" selectUser" resultMap="BaseResultMap">
select * from user where user_name = #{name}
</select>
2、使用${}方式引用参数,不建议,会引起SQL注入问题;
3、方法中有多个参数;
4、动态SQL中作为判断条件;
List<User> getUserById(@Param("id") Integer id);
<select id="getUserById" resultType="org.javaboy.helloboot.bean.User">
select * from user
<if test="id != null">
where id = #{id}
</if>
</select>
二、无需@Param的情况:只有一个JavaBean参数、Map对象