/* 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 */
saveOrUpdate(T entity) 方法介绍
于 2023-04-25 16:38:30 首次发布