关于mapper层使用@Param注解(@Param的使用)

2024-06-21 18:17:33 浏览数 (2)

因为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注解,较方便。

0 人点赞