一、mybatisplus刪除語句
Mybatis-plus的刪除操作通過使用DeleteWrapper對要刪除的數據進行封裝來實現。DeleteWrapper是Mybatis-plus提供的一個 Wrapper 類, 用於構建要刪除的數據的條件,刪除時只需把它傳遞給 delete 方法即可。
以下是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.eq("age", 20); int rows = userMapper.delete(wrapper);
上面代碼中,首先構建了一個DeleteWrapper對象wrapper,它使用eq方法將age等於20作為要刪除的條件。接著將wrapper對象傳遞給userMapper的delete方法,並將受影響的行數賦值給rows變數。
二、mybatisplus刪除返回受影響的行數
在Mybatis-plus的刪除操作中,調用delete方法後會返回受影響的行數。下面是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.eq("age", 18); int rows = userMapper.delete(wrapper); System.out.println("受影響的行數:" + rows);
三、mybatisplus刪除方法
Mybatis-plus提供了多個刪除方法,包括deleteById、deleteByMap、delete等多個方法。具體使用哪個方法,根據實際情況來決定。
以下是deleteById示例代碼:
int rows = userMapper.deleteById(1L); System.out.println("受影響的行數:" + rows);
以上代碼中,deleteById方法刪除id為1的記錄,並返回受影響的行數。
四、Mybatisplus刪除全表數據
刪除整張表的數據需要在Wrapper中使用無條件構建刪除條件。下面是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); int rows = userMapper.delete(wrapper); System.out.println("受影響的行數:" + rows);
以上代碼中,構建了一個無條件的DeleteWrapper對象wrapper,傳遞給userMapper的delete方法即可刪除整張表的數據,並返回受影響的行數。
五、mybatisplus刪除條件
Mybatis-plus的DeleteWrapper用於構建刪除條件,可以靈活設置條件。以下是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.eq("age", 20) .ne("email", "test@baomidou.com") .like("name", "Tom"); int rows = userMapper.delete(wrapper);
以上代碼中,構建了一個DeleteWrapper對象wrapper,通過eq、ne、like等方法設置刪除條件,刪除age等於20,但email不等於test@baomidou.com且name包含Tom的記錄。
六、mybatisplus刪除七天前數據
想要刪除七天以前的數據,需要使用Mybatis-plus提供的時間查詢方法,下面是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.le("create_time", LocalDateTime.now().minusDays(7)); int rows = userMapper.delete(wrapper);
以上代碼中,構建了一個DeleteWrapper對象wrapper,調用了le方法設置條件,刪除create_time小於等於當前時間減去7天的記錄。
七、mybatisplus刪除數據
Mybatis-plus的刪除操作支持批量刪除,可以用List、Map、Array等方式傳遞多個參數。
以下是示例代碼:
List ids = Arrays.asList(1, 2, 3); int rows = userMapper.deleteBatchIds(ids);
以上代碼中,構建了一個List對象ids,其中包含了要刪除的記錄的id值。將ids傳遞給userMapper的deleteBatchIds方法,刪除對應的記錄,並返回受影響的行數。
八、mybatisplus刪除不生效
在Mybatis-plus的刪除操作中,如果刪除不生效,可能是由於我們所構建的Wrapper對象中的條件不正確導致的。可以通過列印sql語句,定位到具體的問題,並進行調整。
以下是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.eq("age", 18); String sql = "delete from user where age = 19"; int rows = userMapper.delete(wrapper); System.out.println("受影響的行數:" + rows); System.out.println("執行的sql語句:" + sql);
在以上代碼中,我們構建了一個DeleteWrapper對象wrapper,並設置了刪除條件刪除age等於18的記錄。但在實際執行中,我們手動編寫了sql語句,刪除了age等於19的記錄。當我們執行程序後,會發現受影響的行數為0,這時候我們可以查看輸出的sql語句,找到問題。
九、mybatisplus刪除拼接的條件
在Mybatis-plus的刪除操作中,如果我們需要對刪除條件進行拼接,可以使用LambdaQueryWrapper的方法進行構建。
以下是示例代碼:
DeleteWrapper wrapper = new DeleteWrapper(); wrapper.and(i -> i.eq("age", 30).or().eq("age", 40)); int rows = userMapper.delete(wrapper);
以上代碼中構建了一個DeleteWrapper對象wrapper,通過and方法拼接了兩個查詢條件,刪除age等於30或等於40的記錄。
總結
通過本文章的介紹,我們可以看到Mybatis-plus提供了多種刪除操作的方法,並且可以通過Wrapper的方法進行靈活的條件設置。但我們在使用過程中需要注意刪除條件的設置和拼接,以免造成意料之外的結果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243916.html