溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql中恢復(fù)邏輯刪除方法

發(fā)布時間:2020-05-25 16:55:52 來源:PHP中文網(wǎng) 閱讀:216 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡單講講mysql中恢復(fù)邏輯刪除方法,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql中恢復(fù)邏輯刪除方法這篇文章可以給大家?guī)硪恍?shí)際幫助。

                                                            

mysql中恢復(fù)邏輯刪除方法

在前端頁面中刪除了,也不顯示了,其實(shí)數(shù)據(jù)庫中并沒有刪除,只是根據(jù)了一個狀態(tài)字段,0啟動,1停用的思路來達(dá)成。

所以邏輯刪除就是只是將一個名為status字段進(jìn)行更改,來達(dá)到前端頁面是否顯示的方式,其數(shù)據(jù)本身并沒有被刪除,想要恢復(fù)只需要改回status字段即可。

思路:

在XML中寫查詢SQL時,多加一個條件,庫中的狀態(tài)字段

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

那我們給前端頁面時候的數(shù)據(jù),就要自己在Java代碼中進(jìn)行默認(rèn)操作,因為前端是不會在查詢的傳一個狀態(tài)碼的,后臺自己生成

mdDrainageBasin.setState(0);
List<MdDrainageBasin> list = mdDrainageBasinMapper.findByQuery(mdDrainageBasin);

默認(rèn)把狀態(tài)0啟動set到實(shí)體類中,再進(jìn)行查詢,這樣前端看到的只有狀態(tài)為0的數(shù)據(jù)

邏輯刪除是把狀態(tài)碼進(jìn)行更新,更新成1,調(diào)用update而不是delete,但考慮到多表關(guān)系,例如流域下面掛著水系,邏輯刪除一條流域,那下面的水系也要進(jìn)行邏輯刪除不給與顯示,這時可根據(jù)判斷,如果流域下面有相應(yīng)水系,則不刪除,不然刪除

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);
}

根據(jù)前端傳入的Id進(jìn)行查詢哪一條流域,這條流域下面有多少水系,有水系,不刪除,沒水系,刪除

mysql中恢復(fù)邏輯刪除方法就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI