您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何進行mybatis實現批量修改xml方式的分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
mybatis批量查詢,批量新增就不聊了,今天看看批量修改。
直接上代碼吧
xml文件中代碼如下:
<update id="batchUpdate" parameterType="java.util.List"> update pat_doc_pat_info set sex= <foreach collection="list" item="item" index="index" separator=" " open="case patient_id" close="end"> when #{item.patientId} then #{item.sex} </foreach> ,address= <foreach collection="list" item="item" index="index" separator=" " open="case patient_id" close="end"> when #{item.patientId} then #{item.address} </foreach> ,birth_time= <foreach collection="list" item="item" index="index" separator=" " open="case patient_id" close="end"> when #{item.patientId} then #{item.birthTime} </foreach> ,remark= <foreach collection="list" item="item" index="index" separator=" " open="case patient_id" close="end"> when #{item.patientId} then #{item.remark} </foreach> ,modified_time = now() ,belong_hospital = 1 where delete_flag = 1 and doctor_id = <foreach collection="list" item="item" index="index" separator=" " open="case patient_id" close="end"> when #{item.patientId} then #{item.doctor_id} </foreach> and patient_id in <foreach collection="list" index="index" item="item" separator="," open="(" close=")"> #{item.patientId} </foreach> </update>
mapper類中代碼如下:
int batchUpdate(List<PICAPPatientModel> list);
測試類方法如下:
@Autowired private PatDocPatInfoMapper patDocPatInfoMapper; @Test public void testMapperMethod () { List<PICAPPatientModel> updateMappingList = new ArrayList<>(); PICAPPatientModel model1 = new PICAPPatientModel(); model1.setPatientId(12334); model1.setDoctor_id(5466927); model1.setSex(2); model1.setAddress("上海市普陀區xxxx"); model1.setBirthTime(new Date()); model1.setRemark("哈哈哈哈"); PICAPPatientModel model2 = new PICAPPatientModel(); model2.setPatientId(5923302); model2.setDoctor_id(5466927); model2.setSex(1); model2.setAddress("上海市普陀區xxxx金沙江路1008號"); model2.setBirthTime(new Date()); model2.setRemark("哈哈哈哈adsfsa"); updateMappingList.add(model1); updateMappingList.add(model2); patDocPatInfoMapper.batchUpdate(updateMappingList); }
在表中已經存好了名字,但是想在這些個名字后面再加上想要的內容,例如表中有一個叫錢塘江的,我要改成錢塘江水系,而且都這樣改,都要加上水系兩個字,這個好辦,用Java來實現的話就是先查詢出所有的內容存入 list 中,然后遍歷這個list放入對象中,用Set實體類的方式拼接,然后Update
public Result uuu(){ List<MdWaterSystem> list = mdWaterSystemService.findAll(); for (MdWaterSystem mdWaterSystem : list) { mdWaterSystem.setWaterName(mdWaterSystem.getWaterName()+"水系"); mdWaterSystemService.updates(mdWaterSystem); } return ResponseMsgUtil.success(list); }
雖然這樣也能夠實現,但是大可不必用代碼,直接在SQL中寫
update md_water_system set water_name = CONCAT(IFNULL(water_name,''), IFNULL('水系',''));
用CONCAT這個函數將現有的內容中后面加上自己想加入的即可
若又不想要了,可以用SQL來替換
update md_water_system set water_name = REPLACE(water_name, '水系', '')
REPLACE這個函數是替換函數,將要替換掉的字段內容寫進去即可
上述內容就是如何進行mybatis實現批量修改xml方式的分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。