這篇文章主要介紹了mybatis mysql delete in操作只能刪除第一條數據的問題及解決方法,需要的朋友可以參考下
出現的Bug
如圖,我開始複製delete語句和參數到數據庫執行,刪除兩條數據,但是後臺執行確只刪除一條數據,當時表示一臉懵逼
分析原因
分析原因
如圖,正確的參數傳值應該是這樣的,聰明的同學,應該就知道哪裏錯了
解決問題
解決問題
我就不貼開始的代碼了,直接貼解決bug的代碼
mybatis中的代碼
<!-- 批量刪除--> <delete id="deleteByIds" parameterType="int[]"> <![CDATA[ DELETE FROM p_customer WHERE customerId in ]]> <foreach collection="array" item="arr" index="no" open="(" separator="," close=")"> #{arr} </foreach> </delete>
controller中的代碼
/** * 刪除和批量刪除 */ @RequestMapping(value = "/del", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) public ResponseEntity<PCustomerVo> delete(@RequestParam String customerId) throws Exception { //獲取批量刪除的id,去掉最後一個“,” customerId=customerId.substring(0,customerId.length()-1); String[] strarr=customerId.split(","); int[] arr=new int[strarr.length]; for(int i=0;i<strarr.length;i++){ arr[i]=Integer.parseInt(strarr[i]); } pcustomerService.deletes(arr); return new ResponseEntity<>(HttpStatus.OK); }
總結
以上所述是小編給大家介紹的mybatis mysql delete in操作只能刪除第一條數據,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!