XML获取参数
在 MyBatis 中,如果 Mapper 接口的方法有多个参数,但没有使用
@Param
注解,默认情况下,MyBatis 会将这些参数放入一个 Map
中,键名为 param1
、param2
等,或者使用索引 0
、1
等来访问。以下是具体的使用方法和注意事项。一、Mapper 接口方法
假设有一个 Mapper 接口方法,包含多个参数但没有使用
@Param
注解:二、XML 文件中的参数引用
在 XML 文件中,可以通过以下方式引用参数:
1. 使用 param1
、param2
等
MyBatis 会自动为参数生成键名
param1
、param2
等:2. 使用索引 0
、1
等
也可以通过索引
0
、1
等来引用参数:三、注意事项
- 可读性问题:
- 使用
param1
、param2
或索引0
、1
的方式可读性较差,容易混淆。 - 建议使用
@Param
注解明确参数名称。
- 参数顺序问题:
- 如果参数顺序发生变化,XML 文件中的引用也需要同步修改,容易出错。
- 推荐使用
@Param
注解: - 使用
@Param
注解可以为参数指定名称,提高代码可读性和可维护性。
XML 文件:
- 一个参数可以不用写@param,也能获取;
- 在 JDK 8 中,Java 引入了 参数名称保留 的特性(通过 -parameters 编译参数实现),这使得 MyBatis 可以直接通过变量名获取 #{} 中的值,而不再需要显式指定 @Param 注解。这一特性极大地简化了 MyBatis 的使用,尤其是在方法参数较多时。
Loading...