您好,登錄后才能下訂單哦!
本文主要給大家簡單講講mysql中恢復邏輯刪除方法,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql中恢復邏輯刪除方法這篇文章可以給大家帶來一些實際幫助。
在前端頁面中刪除了,也不顯示了,其實數據庫中并沒有刪除,只是根據了一個狀態字段,0啟動,1停用的思路來達成。
所以邏輯刪除就是只是將一個名為status字段進行更改,來達到前端頁面是否顯示的方式,其數據本身并沒有被刪除,想要恢復只需要改回status字段即可。
思路:
在XML中寫查詢SQL時,多加一個條件,庫中的狀態字段
SELECT * FROM md_drainage_basin <where> <if test="basinName != null"> and basin_name LIKE concat('%',#{basinName},'%')</if> <if test="state != null">AND state = #{state}</if> </where> ORDER BY sort_order
那我們給前端頁面時候的數據,就要自己在Java代碼中進行默認操作,因為前端是不會在查詢的傳一個狀態碼的,后臺自己生成
mdDrainageBasin.setState(0); List<MdDrainageBasin> list = mdDrainageBasinMapper.findByQuery(mdDrainageBasin);
默認把狀態0啟動set到實體類中,再進行查詢,這樣前端看到的只有狀態為0的數據
邏輯刪除是把狀態碼進行更新,更新成1,調用update而不是delete,但考慮到多表關系,例如流域下面掛著水系,邏輯刪除一條流域,那下面的水系也要進行邏輯刪除不給與顯示,這時可根據判斷,如果流域下面有相應水系,則不刪除,不然刪除
MdDrainageBasin mdDrainageBasin = mdDrainageBasinService.findById(id); List<MdWaterSystem> list = mdWaterSystemMapper.findByWater(mdDrainageBasin.getBasinCode()); if (list.size() > 0) { return ResponseMsgUtil.failure(); } else { mdDrainageBasin.setState(1); mdDrainageBasinService.update(mdDrainageBasin); return ResponseMsgUtil.success(mdDrainageBasin); }
根據前端傳入的Id進行查詢哪一條流域,這條流域下面有多少水系,有水系,不刪除,沒水系,刪除
mysql中恢復邏輯刪除方法就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。