Что такое session.selectOne(String arg0, Objectarg1);?

Я новичок в MyBatis, я не могу найти учебники для изучения, но сейчас я собираюсь начать работу над MyBatis с помощью Spring, я использовал session.selectOne(String arg0, Object arg1) но я не могу понять, как это работает и что он будет делать со вторым параметром, который является объектом arg1.

может ли кто-нибудь помочь в этом. благодарю вас

1 ответ

Решение

Второй аргумент selectOne а также selectList для параметра. Это может быть примитив, если у вас есть очень простые потребности в вашем запросе, скажем, одно целое число, или для более сложных запросов, требующих интерполяции многих значений, экземпляр класса bean-компонента со значениями, заполненными по мере необходимости (и содержащими правильные методы получения и установки).

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

См. Документ MyBatis для более подробной информации: http://mybatis.github.io/mybatis-3/java-api.html

Ответ на комментарии от ОП:

MapBuilder должен быть пользовательский код, связанный с Map структуры данных. Там есть ImmutableMap.Builder как часть гуавы, но это не похоже на то, что это такое. Я не думаю, что это связано с Mybatis как таковым.

Похоже, этот код просто создает объект Map, а затем передает его selectOne запрос для использования в определении запроса в маппере (вместо пользовательского класса бина).

Какое определение у LoginMapper.getUserByUsername в вашем маппере? В этом определении содержимое объекта карты, вероятно, интерполируется в запрос, поэтому могут быть включены динамические значения.

Другие вопросы по тегам