因为java没有保存行参的记录,所有java在运行的时候会把例如List queryAll(int offset,int limit);中的参数变成这样:queryAll(int arg0,int arg1),这样我们就没有办法去传递多个参数。所以需要使用@Param注解给方法参数命名,然后在xml文件的该dao层方法对应的sql语句中就可以正常使用@Param注解的参数名。
如下:
1、使用param注解:
(mapper层)
代码语言:javascript复制List<ProductOnAppBO> getProductOnApp(@Param("productType") Integer productType,@Param("productName") String productName);
该例子中,使用了@Param("productType") Integer productType,因此在sql中就可以通过#{productType}的方式获取传入的该参数。
2、不使用
param注解:
(mapper层)
代码语言:javascript复制List<ProductCommissionRateBO> getProductCommissionRateList(String attachmentType);
该例子中,未使用param注解,因此,若在sql中使用#{attachmentType}的方式获取传入的该参数会报错,只能通过#{param1}方式获取。
个人建议使用param注解,较方便。