对于编程小白来说,在自学的路上总会遇到各种艰难险阻,今天我在做mybatis相关练习的时候,报了一个如下的错误,从网上查了一些相关文章,大都是一些例如<typeAliases>放的前后位置不对、或mybatis配置文件的头信息不正确等,发现和我的问题都不太相符,最后找到原因竟然是:!!!特此记录一下
IDEA报出的错误提示如下:
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 91; columnNumber: 22; 元素类型为 "choose" 的内容必须匹配 "(when*,otherwise?)"。
看到这里后,我考虑的可能是sql语句出错了,但是仔细找了一遍也没感觉有什么问题,如下:
<select id="selectByConditionSimple" resultMap="brandResultMap">
select * from tb_brand
<where>
<choose> /*choose相当于java里面的switch*/
<when test="status !=null">
status = #{status}
</when>
<when test="companyName !=null and companyName != ''">
company_name like #{companyName}
</when>
<when test="brandName !=null and brandName != ''">
brand_name like #{brandName}
</when>
</choose>
</where>
</select>
百般寻找答案,终于找到原因:问题竟出现在这里,这个 /**/ 注释
当我把该注释去掉后,一切都变正常了,虽然我不知道是什么原理,但我觉得为避免奇奇怪怪的错误,还是老老实实的用 <!----> 注释,所以如果遇到相同错误类型,不妨检查一下是不是也是这个问题,拜~