MyBatis注解@Param使用总结
1、当入参为多个的时候:
必须使用@Param,因为MyBatis是使用反射机制,它需要确定入参对应sql中的哪个值;
2、当入参为一个的时候:
如果不是JavaBean,可以不使用@Param;
如果是JavaBean,因为MyBatis是通过反射来直接获取对象的属性,在xml中不能使用 #{对象.属性} 或者 ${对象.属性},而是使用 #{对象.属性} 或者 ${对象.属性} 来获取值。如下
Java代码:
Operation select( QueryFilter queryFilter);
XML(错误):
<select id="select" resultMap="OperationMap"> SELECT * FROM ${queryFilter.table.name} WHERE 1=1 </select>
XML(正确):
<select id="select" resultMap="OperationMap"> SELECT * FROM ${table.name} WHERE 1=1 </select>