MyBatisPlus唯一索引批量新增或修改的實現(xiàn)方法
MyBatis-Plus提供了一個便捷的方式基于唯一索引批量新增或修改記錄。具體步驟如下:
在實體類中標注唯一索引,使用@TableIndex注解,例如:
@TableName("user") @TableIndex(name = "idx_username", unique = true, columnList = "username") public class User { private Long id; private String username; private String password; // ... }
上述代碼中,@TableIndex注解表示在user表上創(chuàng)建一個名為idx_username的唯一索引,索引列為username。
在Mapper接口中定義方法,使用@Param注解傳遞參數(shù),例如:
public interface UserMapper extends BaseMapper<User> { int batchInsertOrUpdate(@Param("list") List<User> list); }
在Mapper XML文件中編寫SQL語句,使用ON DUPLICATE KEY UPDATE實現(xiàn)批量新增或修改,例如:
<insert id="batchInsertOrUpdate" useGeneratedKeys="true" keyProperty="id"> INSERT INTO user(username, password) VALUES <foreach collection="list" item="item" separator=","> (#{item.username}, #{item.password}) </foreach> ON DUPLICATE KEY UPDATE username = VALUES(username), password = VALUES(password) </insert>
上述代碼中,使用<foreach>標簽循環(huán)插入或更新每個User對象,ON DUPLICATE KEY UPDATE表示如果有唯一索引沖突,則執(zhí)行更新操作。
在Service層中調(diào)用Mapper方法,例如:
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public int batchInsertOrUpdate(List<User> list) { return userMapper.batchInsertOrUpdate(list); } }
這樣,我們就可以通過一個方法實現(xiàn)基于唯一索引的批量新增或修改記錄了。
到此這篇關于MyBatisPlus唯一索引批量新增或修改的實現(xiàn)方法的文章就介紹到這了,更多相關MyBatisPlus唯一索引批量新增 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Security獲取用戶認證信息的實現(xiàn)流程
Spring Security是一個能夠為基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC,DI和AOP功能,為應用系統(tǒng)提供聲明式的安全訪問控制功能2022-12-12Java ThreadLocal詳解_動力節(jié)點Java學院整理
ThreadLocal,很多地方叫做線程本地變量,也有些地方叫做線程本地存儲,本文會詳細的介紹一下,有興趣的可以了解一下2017-06-06SpringCloud之@FeignClient()注解的使用方式
這篇文章主要介紹了SpringCloud之@FeignClient()注解的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09