iBatis несколько метод картопостроителя параметра

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

public UserBean getUser(String userName, String password);

Есть ли какой-либо способ, которым я могу достигнуть чего-то как этот? Или возможно я должен передать в своей карте метода картопостроителя параметров (и некоторый parameterMap в моем xml картопостроителе)?

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

Я ожидаю к некоторым подсказкам и объяснениям.

6
задан jjczopek 26 May 2010 в 20:09
поделиться

2 ответа

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

Если вы хотите назвать параметры, а не ссылаться на них в цифрах, сделайте следующее: В отображении XML для вашего оператора SELECT установите параметр parameterType = "map", а в файле интерфейса аннотируйте параметры с помощью @ Param. Например, общедоступный UserBean getUser (@Param ("user_name" String userName, @Param ("password") String password); позволит вам ссылаться на имя пользователя и пароль в сопоставлении XML как # {user_name #} и # {пароль} соответственно.

9
ответ дан 10 December 2019 в 00:34
поделиться

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

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

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

1
ответ дан 10 December 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: