User selectUser(@param(“name”)String name,@param(“password”)String password);
<select id=" selectUser" resultMap="BaseResultMap">
select * from user where user_name = #{name} and user_password=#{password}
</select>
像这段代码一样,mybatis可以使用反射来获取变量名,变量有不同的名称,可以替换@param(“XXX”)
。
答案 0 :(得分:1)
回答实际问题:
默认情况下,方法的参数名称不是字节码的一部分。所以你提出的建议在默认情况下不起作用。
MyBatis使用参数的通用名称来确定名称:
[...]他们将由文字&#34; param&#34;命名。默认情况下,它们在参数列表中的位置,例如:#{param1},#{param2}等。如果您想更改参数的名称(仅限多个),则可以使用@Param(&# 34; paramName&#34;)注释参数。
因此,如果您在SQL代码中使用这些名称,那么应该可以正常工作。
如果为javac指定-parameters
编译器标志,它确实会包含方法参数的名称以及您建议的原则上使用的方法。我看过一个声称MyBatis会使用它们的教程,虽然参考文档似乎没有提到它。你可以尝试一下。