Вопрос

Скажем, у меня есть запрос getUser С двумя параметрами - имя пользователя и пароль. Я хотел бы иметь метод Mapper, который выглядит так:

public UserBean getUser(String userName, String password);

Есть ли способ, которым я могу добиться чего-то подобного? Или, может быть, я должен пройти в моем Mapper Method Map Paraments (и какой-то параметр в моем XML Mapper)?

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

Я с нетерпением жду некоторых намеков и объяснений.

Это было полезно?

Решение

Без какой-либо особой конфигурации вы можете обратиться к первому и второму параметру как # {1} и # {2} соответственно.

Если вы хотите назвать параметры, вместо того, чтобы ссылаться на них численно, выполните следующие действия: в отображении XML для вашего выбора оператора SELECT, установите PARMETYPEER = «MAP», а в файле интерфейса, аннотируйте параметры с @param. Например, Public UserBean GetUser (@param ("user_name" String username, @param ("пароль") Строковый пароль); позволит вам обратиться к именному имени пользователя и паролю, в сопоставлении XML, как # {user_name #} и # {пароль} соответственно.

Другие советы

Вы не должны изменить подпись вашего метода DAO, единственным вопросом, который необходимо учитывать, - это то, как вы создаете свое сопоставление. IBATIS поддерживает только один входной параметр, и вы должны решить ваш класс (атрибут parameterType) Чтобы упаковать свои два оригинальных параметра в один.

В этом сценарии вы можете (среди других вариантов) разместите два параметра в Map (HashMap, Как правило,) или (если параметры соответствуют свойствам UserBean класс) пройти манекен UserBean с этими двумя свойствами.

В обоих случаях упаковка (построение HASHMAP или фиктивное USERBUS, которое удерживает два параметра), будет выполняться в вашем public UserBean getUser(String userName, String password) метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top