大海话语 2021-11-05 10:37 采纳率: 87.6%
浏览 74
已结题

SpringBoot用Mybatis更新文件,只能更新一个

我现在用SpringBoot更新一个文件,它只能更新一个,其它在数据库里面的对象,就不能更新,而且,更新后的文件的id变成了0.


```java

 UPDATE ty_song
        <set>
            <if test="id != null">
                id = #{id},
            </if>
            <if test="singleName != null">
                single_name = #{singleName},
            </if>
            <if test="singer != null">
                singer = #{singer},
            </if>
            <if test="lyricist != null">
                lyricist = #{lyricist},
            </if>
            <if test="songwriter != null">
                songwriter = #{songwriter},
            </if>
</set>
        WHERE single_name = #{singleName} ;

下面是控制类

```java
String singer = request.getParameter("singer");
            String lyricist = request.getParameter("lyricist");
            String songwriter = request.getParameter("songwriter");
            String arranger = request.getParameter("arranger");

 song.setSingleName(singleName);
            song.setSinger(singer);
            song.setLyricist(lyricist);
            song.setSongwriter(songwriter);

而且 其它的字段,没有输入时,也全部会被修改成空。

  • 写回答

5条回答 默认 最新

  • 关注

    这是你的写法错了,你update的时候是想要根据single_name更新,如果你的id是你的主键,上面就不能有id,如果不是的话,你修改的时候就不能填值;我下面给你整理了update语句,你可以试试:

    <update id="updateByPrimaryKeySelective" parameterType="com.qk.platform.database.model.TySong">
        update ty_song
        <set>
          <if test="singleName != null">
            single_name = #{singleName,jdbcType=VARCHAR},
          </if>
          <if test="singer != null">
            singer = #{singer,jdbcType=VARCHAR},
          </if>
          <if test="lyricist != null">
            `lyricist` = #{lyricist,jdbcType=VARCHAR},
          </if>
          <if test="songwriter != null">
            songwriter = #{songwriter,jdbcType=VARCHAR},
          </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
      </update>
    
    

    如果可以的话请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月5日

悬赏问题

  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?