0x01、元素内容必须由格式正确的字符数据或标记组成。
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 23; 元素内容必须由格式正确的字符数据或标记组成。
原因是:mybatis查询的时候,需要用到运算符 小于号:< 和 大于号: >,在mybatis配置文件里面,这种会被认为是标签,所以解析错误
解决方法
<![CDATA[ 部分容易解析错误的sql语句 ]]>
0x02、通过MyBatis将多条记录存到HashMap中并返回
方法一、新建一个Dto类,返回List
方法二、返回List<Map<Objectg,Object>>
MyBatis代码
<select id="findUsersNickName" resultType="java.util.HashMap">
select id,nickname from user
where id in
<foreach collection="userIds" open="(" close=")" separator="," item="userId" >
#{userId}
</foreach>
</select>
Java代码
Map<String, String> nickNameMap = Maps.newHashMap();
List<Map<String, String>> usernameMap = userDao.findUsersNickName(userIdSet);
for (Map<String, String> map : usernameMap) {
nickNameMap.put(map.get("id"), map.get("nickname"));
}