今天遇到两次这个报错,都是SQL语句有细微的差错导致
第一次:少了“,”
原来的SQL
<update id="updateBlog" parameterType="map" >
update blog
<set>
<if test="title!=null">
title =#{title}
</if>
<if test="author != null">
author =#{author}
</if>
</set>
where id = #{id}
</update>
title后面少了一个“ ,”
修改后的SQL
<update id="updateBlog" parameterType="map" >
update blog
<set>
<if test="title!=null">
title =#{title},
</if>
<if test="author != null">
author =#{author}
</if>
</set>
where id = #{id}
</update>
成功
第二次:少了空格
我是想通过Foreach把
select * from blog where 1=1 and (id=1 or id=2 or id=3)
转成动态SQL,
<select id="queryBlogForeach" parameterType="map" resultType="com.li.pojo.Blog">
select * from blog
<where>
<foreach collection="ids" item="id" open="and(" close=")" separator="or">
id=#{id}
</foreach>
</where>
</select>
在起始的open 把”and (”的空格去掉了,同样报这个错,修改后成功
<select id="queryBlogForeach" parameterType="map" resultType="com.li.pojo.Blog">
select * from blog
<where>
<foreach collection="ids" item="id" open="and (" close=")" separator="or">
id=#{id}
</foreach>
</where>
</select>
翻译一下这个报错
其实就是SQL语句出错,每个人错的情况不同,仔细检查SQL语句是不是少了或多了什么符号。
版权声明:本文为qq_61009660原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。