Динамический столбец Mybatis в операторе выбора

Я пытаюсь выбрать динамический столбец. Ниже мои коды:

//call the dao method
String columns = "first_name";
userDao.sample(1, columns);

//call mapper
List<User> sample(@Param("userId") int userId, @Param("columns") String columns);

//mapper
<select id = "sample" resultMap = "user" parameterType = "map">
    SELECT
        #{columns}
    FROM
        user
    WHERE
        userId = #{userId}
</select>

Вот результат, который я получаю:

[ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль , ноль ноль]

Что я делаю неправильно?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
3 134
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

это не может быть связано с тем, что ваш параметр - это карта, поэтому вы можете изменить это и попробовать

//call the dao method
String columns = "first_name";
HashMap map = new HashMap();
map.put("userId",userId);
map.put("columns",columns);
userDao.sample(map);

//call mapper
List<User> sample(HashMap map);

//mapper
<select id = "sample" resultMap = "user" parameterType = "map">
    SELECT
        #{columns}
    FROM
        user
    WHERE
        userId = #{userId}
</select>

Я все еще получаю тот же результат

Chong We Tan 04.06.2018 09:44

# {columns} изменится на $ {columns}

Adri Aulia Rakhman 04.06.2018 11:38

вы также можете использовать раздел SQL, как в официальной документации:

http://www.mybatis.org/mybatis-3/sqlmap-xml.html

Раздел SQL

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