问题:只是执行一个简单的SQL语句,但是却无法正常返回数据库中的数据。
传递的参数roleid是用","拼接起来的:6,2
Mapper.xml
<select id="selectByCondition" resultMap="BaseResultMap">
SELECT * from biobase_role_popedom WHERE roleID in (#{roleid,jdbcType=VARCHAR})
</foreach>
</select>
运行结果
原因:网上找了很多方法,没有解决。最后各种测试发现不用字符串拼接就没有问题,因为当传递的参数只有一个值的时候就不会出问题
所以,我将传递的值放在List中,当然放在Map,数组都一样。
解决:
首先确保数据库连接字符串添加了 ?autoReconnect=true&useUnicode=true&characterEncoding=utf8
Mapper.xml
<select id="selectByCondition" resultMap="BaseResultMap">
SELECT * from biobase_role_popedom WHERE roleID in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>