Java實現列表上移,下移操作總結

2021-09-14 05:56:53 字數 2256 閱讀 9881

最近遇到這麼乙個需求,要求對列表中的資料進行自定義排序操作,思前想後,決定通過上下移動來實現此功能。

實現思路:

1.在資料庫中對要進行排序那張表新增乙個sort欄位用於排序。

2.每當新增一條記錄時,sort的值都會在上一條的記錄上進行+1。即每次新增記錄時,先查出已存在的sort值最大的那條記錄,然後新增記錄的sort值為該記錄的sort的值+1。

springboot+mybatis**實現:

1.sql

select ifnull(max(sort),0)  from classic_case

select

,from classic_case f

where f.sort < # order by f.sort desc limit 0,1

select

,from classic_case f

where f.sort > # order by f.sort asc limit 0,1

2.dao

/**

* @description:查詢當前最大的sort值

* @date: 17:44 2019-3-29

* @param:

* @return: int

*/integer selectmaxsort();

/*** 上移

* @param sort

* @return

*/classiccase moveup(integer sort);

/*** 下移

* @param sort

* @return

*/classiccase movedown(integer sort);

3.service

/**

* 新增記錄

* @param record

* @return

*/int insertselective(classiccase record);

/*** 上移

* @param classicid

* @return

*/void moveup(integer classicid);

/*** 下移

* @param classicid

*/void movedown(integer classicid);

@override

public int insertselective(classiccase record) else

system.out.println(record.getdetail());

}@override

public void moveup(integer classicid)

//交換兩條記錄的sort值

integer temp = classiccase.getsort();

classiccase.setsort(caseprev.getsort());

caseprev.setsort(temp);

//更新到資料庫

}@override

public void movedown(integer classicid)

//交換兩條記錄的sort值

integer temp = classiccase.getsort();

classiccase.setsort(casenext.getsort());

casenext.setsort(temp);

//更新到資料庫

}

4.controller

/**

* 更新排序

* @param sortstr 操作字元(down---下移,up---上移)

* @param classicid 案例id

* @return

*/public baseresponse updatesort(string sortstr, integer classicid) else if (sortstr.equals("up"))

custom.success(constant.success,constant.success_code);

} catch (exception e)

return custom.build();

}

這便是該功能的簡單實現,我個人認識淺薄,有更好的方法還望各位大神指教。

上移下移實現邏輯

在開發中經常有上移 下移的操作,猛的一想感覺邏輯還很複雜,其實很簡單主要有以下步驟 首先頁面上的展示列表在後台查詢的時候要根據某個字段排序,這樣展示的資料才是有序的,才可以實現此功能。新增上移或者下移的時候需要把當前資料的id和目標id傳到後台 前台 each json,function index...

Flex中List實現上移下移功能

我們在html中可以用js實現selecte框中內容的上移下移。昨天在專案中需要用flex來實現這個功能。研究了一下 不難。下面是具體實現 xmlns s library xmlns mx library width 100 height 100 0 private function down vo...

專案 小程式陣列操作 上移下移編輯刪除

編輯 取出指定下標並跳轉到編輯頁面 toremake function else if qtype 多選 else 刪除指定下標的元素,重新儲存陣列,並重新整理頁面 todelete function 上移並重新整理頁面和下移並重新整理頁面 tochange function else tochan...