Я пытаюсь выбрать динамический столбец. Ниже мои коды:
//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>
Вот результат, который я получаю:
[ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль, ноль , ноль ноль]
Что я делаю неправильно?




это не может быть связано с тем, что ваш параметр - это карта, поэтому вы можете изменить это и попробовать
//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>
# {columns} изменится на $ {columns}
вы также можете использовать раздел SQL, как в официальной документации:
http://www.mybatis.org/mybatis-3/sqlmap-xml.html
Раздел SQL
Я все еще получаю тот же результат