saveOrUpdate(T entity) 方法介绍

/*
    saveOrUpdate 在传入的实体类中如果没有设置主键id,则执行save(插入)操作

    例:  ConversationEntity entity = new ConversationEntity();
         entity.setText("喜羊羊");
         conversationService.saveOrUpdate(entity);

    sql:  // 实体类没有传id直接插入数据
          Preparing:    INSERT INTO conversation ( id, text ) VALUES ( ?, ? )
         Parameters:    1650777548239446018(Long), 喜羊羊(String)
            Updates:    1

    如果传入的实体类中设置了主键id,则会先通过id去执行查询操作去看看有没有数据,有的话会根据id去修改数据

    例:  ConversationEntity entity = new ConversationEntity();
         entity.setId(1L);
         entity.setText("杨过");
         conversationService.saveOrUpdate(entity);
   sql:  // 先执行查询
          Preparing:    SELECT id,text,create_time,deleted FROM conversation WHERE id=?
         Parameters:    1(Long)
            Columns:    id, text, create_time, deleted
                Row:    id, text, create_time, deleted
              Total:    1
         // 查询到数据,根据主键id去执行修改
          Preparing:    UPDATE conversation SET text=? WHERE id=?
         Parameters:    杨过(String), 1(Long)
            Updates:    1

    如若根据主键id去查的结果为0也会执行save(插入)操作
    例:  ConversationEntity entity = new ConversationEntity();
         entity.setId(33333L);
         entity.setText("懒洋洋");
         conversationService.saveOrUpdate(entity);
    sql: // 根据主键id查询到的数据为0
    Preparing: SELECT id,text,create_time,deleted FROM conversation WHERE id=?
   Parameters: 33333(Long)
        Total: 0
        // 直接插入数据
    Preparing: INSERT INTO conversation ( id, text ) VALUES ( ?, ? )
   Parameters: 33333(Long), 懒洋洋(String)
      Updates: 1
 */
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值