大海话语 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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度