iBatis多参数映射器方法

时间:2010-05-26 20:09:08

标签: ibatis mapper

假设我有一个带有两个参数的查询getUser - userName和password。我想让mapper方法看起来像这样:

public UserBean getUser(String userName, String password);

有什么方法可以实现这样的目标吗?或者我可以传递参数的mapper方法映射(以及我的xml映射器中的一些parameterMap)?

public UserBean getUser(Map<String, Object> paramMap);

我期待着一些提示和解释。

2 个答案:

答案 0 :(得分:9)

没有任何特殊配置,您可以将第一个和第二个参数分别称为#{1}和#{2}。

如果要命名参数,而不是以数字方式引用它们,请执行以下操作:在SELECT语句的XML映射中,设置parameterType =“map”,并在接口文件中使用@注释参数帕拉姆。例如,public UserBean getUser(@Param(“user_name”String userName,@ Param(“password”)String password);允许您在XML映射中引用用户名和密码,如#{user_name#}和#{密码},分别为。

答案 1 :(得分:1)

您不应该更改DAO方法的签名,唯一要考虑的问题是如何构建映射。 iBatis只支持一个输入参数,您必须确定您的类(属性parameterType)将两个原始参数打包在一个中。

在这种情况下,您可以(在其他选项中)将两个参数放在Map(通常为HashMap)中,或者(如果参数对应于UserBean类的属性) )使用这两个属性集传递一个虚拟UserBean

在这两种情况下,打包(构建HashMap或包含两个参数的虚拟UserBean)都将在public UserBean getUser(String userName, String password)方法中完成。