admin管理员组

文章数量:1565769

/*
    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
 */

本文标签: 方法saveOrUpdateentity