mybatis-generator 唯一索引外掛
阿新 • • 發佈:2020-10-26
因工作使用到了分庫分表中,一般使用含有分庫分表鍵的唯一索引操作資料庫,而不是使用子增長id主鍵進行操作,因此寫了一個唯一索引的資料庫操作方式。
github地址:https://github.com/suyin58/mybatis-generator-tddl
提供的唯一索引操作包括:
根據唯一索引查詢單條資料:selectByUniqueKey
根據唯一索引進行forupdate悲觀鎖操作:selectByUniqueKeyForUpdate
根據唯一索引更新資料:updateByUniqueKeySelective
根據唯一索引刪除資料:deleteByUniqueKey
根據唯一索引進行存在即更新操作:upsertByUniqueKey
需要在配置檔案中增加外掛:(https://github.com/suyin58/mybatis-generator-tddl/blob/master/generator-test/src/test/resources/generatorConfigMyBatis3.xml)
<!-- 自定義外掛開始 --> <!--序列化外掛--> <plugin type="com.toolplat.generator.plugins.SerializablePlugin"/> <!-- lombok 外掛 --> <plugin type="com.toolplat.generator.plugins.LombokPlugin"> <property name="data" value="true"/> <property name="builder" value="true"/> <property name="allArgsConstructor" value="true"/> <property name="noArgsConstructor" value="true"/> <property name="toString" value="true"/> </plugin> <!-- 自定義unique key操作外掛 --> <plugin type="com.toolplat.generator.plugins.SelectByUniqueKeyPlugin"> </plugin> <plugin type="com.toolplat.generator.plugins.UpdateByUniqueKeySelectivePlugin"> </plugin> <plugin type="com.toolplat.generator.plugins.DeleteByUniqueKeyPlugin"> </plugin> <!--存在即更新外掛--> <plugin type="com.toolplat.generator.plugins.UpsertByUniqueKeyPlugin"> </plugin> <plugin type="com.toolplat.generator.plugins.UpsertByPrimaryKeyPlugin"> </plugin> <!--批量插入外掛--> <plugin type="com.toolplat.generator.plugins.BatchInsertPlugin"> </plugin> <!--forupdate 外掛--> <plugin type="com.toolplat.generator.plugins.SelectByPrimaryForUpdate"> </plugin> <plugin type="com.toolplat.generator.plugins.SelectByExampleForUpdate"> </plugin> <plugin type="com.toolplat.generator.plugins.SelectByUniqueKeyForUpdatePlugin"> </plugin> <!--分頁外掛--> <plugin type="com.toolplat.generator.plugins.LimitPlugin"> </plugin> <!-- 自定義外掛結束 --> <!--自定義註釋開始 --> <!-- commentGenerator 去除自動生成的註釋 --> <commentGenerator type="com.toolplat.generator.plugins.CommentGenerator"> <property name="author" value="szy" /> </commentGenerator> <!--自定義註釋結束 -->
如果一個表只存在一個非主鍵的唯一索引,系統可以自動識別。如果存在非主鍵外的多個唯一索引,需要手動指定需要使用的唯一索引名稱
<table tableName="table_two_unique_key" domainObjectName="TableTwoUniqueKeyPO"> <property name="uniqueKey" value="uk_org_cid"/> </table>View Code
PS:表中無唯一索引,將不會生成這些唯一索引的相關操作。