Что такое 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 в вашем маппере? В этом определении содержимое объекта карты, вероятно, интерполируется в запрос, поэтому могут быть включены динамические значения.