springboot中實現通過後臺創建臨時表
springboot 如何通過後臺創建臨時表
其實創建臨時表,跟增刪改查的原理是一樣的,隻不過是在xml中寫一個創建臨時表sql語句,xml中並不是隻能寫增刪改查語句的
1,首先弄一個xml
在xml中寫一個修改頭標簽,因為是建立的是臨時表,所以表名要變,需要在表名處接收一個參數$(tableName) ,這時xml文件就寫好瞭
2,在mapper中寫出對應方法
這時需要在參數中加上註解@Param,隻有加上這個註解,在xml中才可以接收到我傳入的參數
3,接下來在service層和Controller層中調用這個方法
然後在postman中傳入需要的表名,就可以生成這個表瞭。
springboot mybatis下臨時表的創建和刪除,可用於查重去重
/** * 創建臨時表 */ @Update({"drop temporary table if exists ${tableName};", "create temporary table ${tableName} select doctor_id from crm_speaker where 1=2 "}) void createTemoraryTable(@Param("tableName") String tableName); /** * 保存數據到臨時表裡面以便校驗數據重復 */ @Insert("<script>" + "insert into ${tableName} (doctor_id) values\n" + " <foreach collection=\"list\" item=\"doct\" index=\"index\" separator=\",\">\n" + " (" + " #{doct.doctorId,jdbcType=VARCHAR}\n" + " )\n" + " </foreach>\n" + "</script>") void insertBatchCheckDatas(@Param("list") List<SpeakerDO> dOs, @Param("tableName") String tableName); /** * 刪除臨時表 */ @Update({"drop temporary table if exists ${tableName}"}) void dropTemporaryTable(@Param("tableName") String tableName);
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- mybatis update更新字段的使用操作
- mybatis註解如何實現對象批量更改
- mybatis實現批量插入並返回主鍵(xml和註解兩種方法)
- Mybatis 批量更新實體對象方式
- mybatis條件語句中帶數組參數的處理