最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis根據(jù)條件批量修改字段的方式

 更新時(shí)間:2023年02月22日 15:08:52   作者:猿陸柒  
這篇文章主要介紹了MyBatis根據(jù)條件批量修改字段的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MyBatis根據(jù)條件批量修改字段

背景:

給學(xué)生改作業(yè),只要是對(duì)的都批量進(jìn)行數(shù)據(jù)庫的修改

代碼以及注釋

  • conttoller
@RestController
@RequestMapping("/work")
public class WorkController {
?? ?@Autowired
?? ?private WorkService workService;
?? ?
?? ?@PutMapping("/examine")
?? ?public HttpResponse examine(Integer[] id) {
?? ??? ?Integer total = workService.examine(id);
?? ??? ?return HttpResponse.ok("共批改[ "+total+" ]條道題","");
?? ?}
}
  • service
@Service
public class WorkService {
?? ?@Autowired
?? ?private WorkMapper workMapper;
?? ?
?? ?public Integer examine(Integer[] id) {
?? ??? ?return workMapper.examine(id);
?? ?}
}
  • mapper
@Mapper
public interface WorkMapper {
?? ?Integer examine(@Param("id")Integer[] id);
}
  • xml
<!--根據(jù)id來批量修改WORK表里面的isEnable字段-->
<update id="examine">
?? ?UPDATE WORK SET isEnable=TRUE WHERE id IN
?? ?<foreach collection="id" item="id" separator="," open="(" close=")">
?? ??? ?#{id}
?? ?</foreach>
</update>
  • 工具類HttpResponse(此需求中無關(guān)緊要的類)
public class HttpResponse {
?? ?private Integer status;
?? ?private String message;
?? ?private Object object;
?? ?
?? ?public static HttpResponse ok(String message) {
?? ??? ?return new HttpResponse(200, message, null);
?? ?}
?? ?
?? ?public static HttpResponse ok(Object object) {
?? ??? ?return new HttpResponse(200, null, object);
?? ?}
?? ?
?? ?public static HttpResponse ok(String message,Object object) {
?? ??? ?return new HttpResponse(200, message, object);
?? ?}
?? ?
?? ?public static HttpResponse error(Integer status, String message) {
?? ??? ?return new HttpResponse(500, message, null);
?? ?}
?? ?
?? ?public static HttpResponse error(String message) {
?? ??? ?return new HttpResponse(500, message, null);
?? ?}
?? ?
?? ?public static HttpResponse error(String message,Object object) {
?? ??? ?return new HttpResponse(500, message, object);
?? ?}
?? ?
?? ?
?? ?protected HttpResponse() {
?? ??? ?super();
?? ?}
?? ?
?? ?private HttpResponse(Integer status, String message, Object object) {
?? ??? ?super();
?? ??? ?this.status = status;
?? ??? ?this.message = message;
?? ??? ?this.object = object;
?? ?}
?? ?public Integer getStatus() {
?? ??? ?return status;
?? ?}
?? ?public void setStatus(Integer status) {
?? ??? ?this.status = status;
?? ?}
?? ?public String getMessage() {
?? ??? ?return message;
?? ?}
?? ?public void setMessage(String message) {
?? ??? ?this.message = message;
?? ?}
?? ?public Object getObject() {
?? ??? ?return object;
?? ?}
?? ?public void setObject(Object object) {
?? ??? ?this.object = object;
?? ?}
}

重點(diǎn):

如果mapper沒加@Param("id")注解會(huì)報(bào)錯(cuò)找不到參數(shù)"id"

至此MyBatis根據(jù)id批量修改數(shù)據(jù)庫的某字段需求完成!

MyBatis多條件批量修改

簡(jiǎn)單記錄下

想要修改一張表,是聯(lián)合主鍵,也就是where后兩個(gè)以上條件才能唯一確定一條數(shù)據(jù)。

如果有唯一鍵,那么foreach中 用in就可以解決。

現(xiàn)在沒辦法用in,不然 A in (#{})and B in (#{})感覺成笛卡爾了。

簡(jiǎn)單點(diǎn)就是要實(shí)現(xiàn)執(zhí)行多條語句。對(duì)update做循環(huán)。傳入?yún)?shù)為 List,ATest類中字段A,B為聯(lián)合主鍵,修改C的值

<update id="update" parameterType="java.util.List">
?? ??? ?<foreach collection="list" ?item="val" separator=";" open="begin" close=";end;">
?? ??? ? ? ?update table_ABC
?? ??? ??? ?<set>
?? ??? ??? ??? ?<if test="val.C!= null">C = #{val.C},</if>
?? ??? ??? ?</set>
?? ??? ??? ?where A=#{val.A} and B= #{val.B}
?? ??? ?</foreach>

?? ?</update>

執(zhí)行出來效果為:

begin 
update table_ABC set C = '2' where A = '1' and B= '1';
update table_ABC set C = '2' where A = '1' and B= '2';
update table_ABC set C = '4' where A = '3' and B= '2';
end;

這里使用的數(shù)據(jù)庫為oracle,oracle執(zhí)行認(rèn)為begin和end之前為一條語句

當(dāng)然,也可以用or 的形式拼接,不過還沒測(cè)試。

網(wǎng)上查有的說是mysql數(shù)據(jù)庫 mybatis一次執(zhí)行一條語句。支持多條,可以MySQL連接數(shù)據(jù)庫時(shí),添加語句:“allowMultiQueries=true”

作用:

1.可以在sql語句后攜帶分號(hào),實(shí)現(xiàn)多語句執(zhí)行。

2.可以執(zhí)行批處理,同時(shí)發(fā)出多個(gè)SQL語句。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java基礎(chǔ):流Stream詳解

    Java基礎(chǔ):流Stream詳解

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。這篇文章主要介紹了Java8新特性Stream流的相關(guān)資料,需要的朋友參考下吧
    2021-09-09
  • Java實(shí)現(xiàn)兩個(gè)隨機(jī)數(shù)組合并進(jìn)行排序的方法

    Java實(shí)現(xiàn)兩個(gè)隨機(jī)數(shù)組合并進(jìn)行排序的方法

    本文主要介紹了Java實(shí)現(xiàn)兩個(gè)隨機(jī)數(shù)組合并進(jìn)行排序的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java獲取文件的類型和擴(kuò)展名的實(shí)現(xiàn)方法

    Java獲取文件的類型和擴(kuò)展名的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java獲取文件的類型和擴(kuò)展名的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 如何使用IDEA開發(fā)Spark SQL程序(一文搞懂)

    如何使用IDEA開發(fā)Spark SQL程序(一文搞懂)

    Spark SQL 是一個(gè)用來處理結(jié)構(gòu)化數(shù)據(jù)的spark組件。它提供了一個(gè)叫做DataFrames的可編程抽象數(shù)據(jù)模型,并且可被視為一個(gè)分布式的SQL查詢引擎。這篇文章主要介紹了如何使用IDEA開發(fā)Spark SQL程序(一文搞懂),需要的朋友可以參考下
    2021-08-08
  • SpringBoot之bootstrap和application的區(qū)別解讀

    SpringBoot之bootstrap和application的區(qū)別解讀

    這篇文章主要介紹了SpringBoot之bootstrap和application的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java中Integer兩種轉(zhuǎn)int方法比較

    Java中Integer兩種轉(zhuǎn)int方法比較

    本文主要介紹了Java Integer兩種轉(zhuǎn)int方法比較。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • java實(shí)現(xiàn)聯(lián)機(jī)五子棋

    java實(shí)現(xiàn)聯(lián)機(jī)五子棋

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)聯(lián)機(jī)五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 啟動(dòng)Spring項(xiàng)目詳細(xì)過程(小結(jié))

    啟動(dòng)Spring項(xiàng)目詳細(xì)過程(小結(jié))

    這篇文章主要介紹了啟動(dòng)Spring項(xiàng)目詳細(xì)過程(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法

    IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法

    這篇文章主要介紹了IDEA中application.properties的圖標(biāo)顯示不正常的問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 如何將jdk10降版本到j(luò)dk1.8

    如何將jdk10降版本到j(luò)dk1.8

    這篇文章主要介紹了如何將jdk10降版本到j(luò)dk1.8問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論

福贡县| 祁门县| 安阳县| 曲松县| 漳州市| 大丰市| 萨迦县| 田林县| 常山县| 无棣县| 嘉兴市| 海南省| 葫芦岛市| 滕州市| 和龙市| 和林格尔县| 新平| 怀柔区| 兴仁县| 蓬溪县| 宁津县| 民和| 扎囊县| 连城县| 台东市| 三亚市| 文安县| 阿图什市| 广宗县| 西和县| 淮安市| 宁河县| 金门县| 兴隆县| 承德市| 黄山市| 梧州市| 巴楚县| 忻城县| 子洲县| 宁化县|