遇到的異常:
nested exception is org.apache.ibatis.binding.BindingException: Parameter 'deptId' not found. Available parameters are [0, 1, param1, param2],
當引用錯誤的時候就會報這樣的錯誤
關於@param註解的一些思考
1、註解的作用
用註解來簡化xml配置的時候(比如Mybatis的Mapper.xml中的sql參數引入),@Param註解的作用是給參數命名,參數命名後就能根據名字得到參數值,正確的將參數傳入sql語句中(一般通過#{}的方式,${}會有sql注入的問題)。
2、使用@Param註解的sql語句 引用的是mybatis的註解
List<InfoVo> getInfo(@Param("deptId") String deptId, @Param("type") Integer type);
SELECT
id
FROM
t_info
WHERE
deptId = #{deptId}
AND type = #{type}
AND isDel = 0
3、不使用@Param註解
3.1 List<InfoVo> getInfo(String deptId, Integer type);
SELECT
id
FROM
t_info
WHERE
deptId = #{0}
AND type = #{1}
AND isDel = 0
mybatis是根據順序來取值的
3.2 List<InfoVo> getInfo(JavaBean b);
SELECT
id
FROM
t_info
WHERE
deptId = #{deptId}
AND type = #{type}
AND isDel = 0
mybatis會引用bean中的屬性
4、當@Param註解引用的是spring的時候,mybatis取值的方式如同3.1