springboot 如何通過(guò)后臺(tái)創(chuàng)建臨時(shí)表
其實(shí)創(chuàng)建臨時(shí)表,跟增刪改查的原理是一樣的,只不過(guò)是在xml中寫一個(gè)創(chuàng)建臨時(shí)表sql語(yǔ)句,xml中并不是只能寫增刪改查語(yǔ)句的
1,首先弄一個(gè)xml
在xml中寫一個(gè)修改頭標(biāo)簽,因?yàn)槭墙⒌氖桥R時(shí)表,所以表名要變,需要在表名處接收一個(gè)參數(shù)$(tableName) ,這時(shí)xml文件就寫好了
2,在mapper中寫出對(duì)應(yīng)方法
這時(shí)需要在參數(shù)中加上注解@Param,只有加上這個(gè)注解,在xml中才可以接收到我傳入的參數(shù)
3,接下來(lái)在service層和Controller層中調(diào)用這個(gè)方法
然后在postman中傳入需要的表名,就可以生成這個(gè)表了。
springboot mybatis下臨時(shí)表的創(chuàng)建和刪除,可用于查重去重
/** * 創(chuàng)建臨時(shí)表 */ @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); /** * 保存數(shù)據(jù)到臨時(shí)表里面以便校驗(yàn)數(shù)據(jù)重復(fù) */ @Insert("<script>" + "insert into ${tableName} (doctor_id) values " + " <foreach collection="list" item="doct" index="index" separator=","> " + " (" + " #{doct.doctorId,jdbcType=VARCHAR} " + " ) " + " </foreach> " + "</script>") void insertBatchCheckDatas(@Param("list") List<SpeakerDO> dOs, @Param("tableName") String tableName); /** * 刪除臨時(shí)表 */ @Update({"drop temporary table if exists ${tableName}"}) void dropTemporaryTable(@Param("tableName") String tableName);
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/qq_39776207/article/details/80627918