Mybatis динамический столбец в операторе select - PullRequest
0 голосов
/ 04 июня 2018

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

//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>

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

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

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

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

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

Раздел SQL

0 голосов
/ 04 июня 2018

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

//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>
...