1 修改语句,想死就这么写,注意看:条件部分,用的是动态sql,存在很大的风险,当user_id不传入的时候,会导致全表数据被更新,产生大事故 (不要用 不要用 不要用)
<!-- 更新用户信息 -->
<update id="update" parameterType="com.xxx.model.UserModel">
<![CDATA[ UPDATE `t_user` ]]>
<set>
<if test="username != null and username.toString() != ''">
<![CDATA[ `username` = #{username}, ]]>
</if>
<if test="email != null and email.toString() != ''">
<![CDATA[ `email` = #{email}, ]]>
</if>
</set>
<where>
<if test="user_id != null">
<![CDATA[ AND `user_id` = #{user_id} ]]>
</if>
</where>
</update>
改进如下 (用这个 用这个 用这个)
更新的功能,条件部分不要用动态sql,调整后代码如下,更新的时候必须传入用户id,否则报错就可以了
<!-- 更新用户信息 -->
<update id="update" parameterType="com.itsoku.model.UserModel">
<![CDATA[ UPDATE `t_user` ]]>
<set>
<if test="username != null and username.toString() != ''">
<![CDATA[ `username` = #{username}, ]]>
</if>
<if test="email != null and email.toString() != ''">
<![CDATA[ `email` = #{email}, ]]>
</if>
</set>
where user_id = #{user_id}
</update>
2 删除语句,想死就这么写,如果传入的map是空,把整个表的数据都给清空了(不要用 不要用 不要用)
<!-- 删除数据 -->
<delete id="delete" parameterType="map">
<![CDATA[
DELETE FROM `t_user`
]]>
<where>
<if test="user_id!=null">
<![CDATA[ AND `user_id` = #{user_id} ]]>
</if>
</where>
</delete>
改进如下(用这个 用这个 用这个)
<!-- 根据用户id删除用户 -->
<delete id="deleteByUserId">
<![CDATA[
DELETE FROM `t_user` where `user_id` = #{user_id}
]]>
</delete>