亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式

 更新時(shí)間:2022年03月22日 14:20:24   作者:程序猿吉良吉影  
這篇文章主要介紹了mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Wrapper條件構(gòu)造器updateForSet更新

官方文檔:https://baomidou.gitee.io/mybatis-plus-doc/#/wrapper

實(shí)體包裝器,用于處理 sql 拼接,排序,實(shí)體參數(shù)查詢等!

補(bǔ)充說明: 使用的是數(shù)據(jù)庫字段,不是Java屬性!

實(shí)體包裝器 EntityWrapper 繼承 Wrapper

簡(jiǎn)單示例

翻頁查詢

public Page<T> selectPage(Page<T> page, EntityWrapper<T> entityWrapper) {
? if (null != entityWrapper) {
? ? ? entityWrapper.orderBy(page.getOrderByField(), page.isAsc());
? }
? page.setRecords(baseMapper.selectPage(page, entityWrapper));
? return page;
}

拼接sql方式 一

@Test
public void testTSQL11() {
? ? /*
? ? ?* 實(shí)體帶查詢使用方法 ?輸出看結(jié)果
? ? ?*/
? ? EntityWrapper<User> ew = new EntityWrapper<User>();
? ? ew.setEntity(new User(1));
? ? ew.where("user_name={0}", "'zhangsan'").and("id=1")
? ? ? ? ? ? .orNew("user_status={0}", "0").or("status=1")
? ? ? ? ? ? .notLike("user_nickname", "notvalue")
? ? ? ? ? ? .andNew("new=xx").like("hhh", "ddd")
? ? ? ? ? ? .andNew("pwd=11").isNotNull("n1,n2").isNull("n3")
? ? ? ? ? ? .groupBy("x1").groupBy("x2,x3")
? ? ? ? ? ? .having("x1=11").having("x3=433")
? ? ? ? ? ? .orderBy("dd").orderBy("d1,d2");
? ? System.out.println(ew.getSqlSegment());
}

括號(hào)拼接

.isNull("removor").andNew("idCard="+ idCard+" or phone="+ phone)

sql 

(removor IS NULL) AND (idCard=666 or phone=15866958266)?

拼接sql方式二

int buyCount = selectCount(Condition.create()
? ? ? ? ? ? ? ? .setSqlSelect("sum(quantity)")
? ? ? ? ? ? ? ? .isNull("order_id")
? ? ? ? ? ? ? ? .eq("user_id", 1)
? ? ? ? ? ? ? ? .eq("type", 1)
? ? ? ? ? ? ? ? .in("status", new Integer[]{0, 1})
? ? ? ? ? ? ? ? .eq("product_id", 1)
? ? ? ? ? ? ? ? .between("created_time", startDate, currentDate)
? ? ? ? ? ? ? ? .eq("weal", 1));

更新:updateForSet根據(jù)條件更新字段

.updateForSet("hits=hits+1", new EntityWrapper<T>().eq("id", id));

自定義SQL方法如何使用 Wrapper

mapper java接口方法

List<User> selectMyPage(RowBounds rowBounds, @Param("ew") Wrapper<T> wrapper);

mapper xml定義

<select id="selectMyPage" resultType="User">
? SELECT * FROM user?
? <where>
? ${ew.sqlSegment}
? </where>
</select>

關(guān)于${ew.sqlSegment} 使用了 $ 不要誤以為就會(huì)被 sql 注入,請(qǐng)放心使用 mp 內(nèi)部對(duì) wrapper 進(jìn)行了字符轉(zhuǎn)義處理!

條件參數(shù)說明

查詢方式說明
setSqlSelect設(shè)置 SELECT 查詢字段
whereWHERE 語句,拼接 + WHERE 條件
andAND 語句,拼接 + AND 字段=值
andNewAND 語句,拼接 + AND (字段=值)
orOR 語句,拼接 + OR 字段=值
orNewOR 語句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 內(nèi)容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查詢 LIKE
notLike模糊查詢 NOT LIKE
inIN 查詢
notInNOT IN 查詢
isNullNULL 值查詢
isNotNullIS NOT NULL
groupBy分組 GROUP BY
havingHAVING 關(guān)鍵詞
orderBy排序 ORDER BY
orderAscASC 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 條件語句
notExistsNOT EXISTS 條件語句
betweenBETWEEN 條件語句
notBetweenNOT BETWEEN 條件語句
addFilter自由拼接 SQL
last拼接在最后,例如:last("LIMIT 1")

注意! xxNew 都是另起 ( ... ) 括號(hào)包裹。

mybatis-plus中update更新使用注意事項(xiàng)

update(pojo,Wrapper)方法

封裝一個(gè)對(duì)象mcTemplate,使用update(pojo,Wrapper) ,該方法僅僅修改mcTemplate中不為空的字段,別的字段不更新,在數(shù)據(jù)庫中保持不變,如下:

mcTemplate.setStatus(TemplateStatusEnum.PASSED.getStatus());//待更新的字段
LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper();
lambdaUpdateWrapper.eq(McTemplate::getId,mcTemplate.getId() ); //限定條件
Integer result = mcTemplateMapper.update(mcTemplate, lambdaUpdateWrapper); //更新mcTemplate中不為空的字段

更新的字段比較少

不想封裝成一個(gè)對(duì)象的時(shí)候,可以采取便捷方式,該方式同上只會(huì)更新設(shè)定的字段,對(duì)于其他字段不更新。

LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper();
lambdaUpdateWrapper.eq(McTemplate::getId,mcTemplate.getId() )
.set(McTemplate::getStatus,1); //更新的值
Integer result = mcTemplateMapper.update(null, lambdaUpdateWrapper);

updateById(mcTemplate)方法

該方法會(huì)將所有的字段都更新,在對(duì)象mcTemplate中沒有的字段,會(huì)字段賦值null

int result = mcTemplateMapper.updateById(mcTemplate);

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

相關(guān)文章

  • Java保留兩位小數(shù)的幾種寫法總結(jié)

    Java保留兩位小數(shù)的幾種寫法總結(jié)

    相信大家在平時(shí)做項(xiàng)目時(shí),可能會(huì)有這樣的業(yè)務(wù)需求: 頁面或界面上展示的數(shù)據(jù)保留小數(shù)點(diǎn)后兩位。 那么這篇文章小編就和大家分享了利用Java保留兩位小數(shù)的幾種寫法,文章給出了詳細(xì)的示例代碼,對(duì)大家的學(xué)習(xí)和理解很有幫助,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2016-11-11
  • 詳解Spring-bean的循環(huán)依賴以及解決方式

    詳解Spring-bean的循環(huán)依賴以及解決方式

    這篇文章主要介紹了詳解Spring-bean的循環(huán)依賴以及解決方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 淺談HBase在SpringBoot項(xiàng)目里的應(yīng)用(含HBaseUtil工具類)

    淺談HBase在SpringBoot項(xiàng)目里的應(yīng)用(含HBaseUtil工具類)

    這篇文章主要介紹了淺談HBase在SpringBoot項(xiàng)目里的應(yīng)用(含HBaseUtil工具類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java計(jì)算方差、標(biāo)準(zhǔn)差(均方差)實(shí)例代碼

    java計(jì)算方差、標(biāo)準(zhǔn)差(均方差)實(shí)例代碼

    在本篇文章里小編給大家分享了關(guān)于java計(jì)算方差、標(biāo)準(zhǔn)差(均方差)實(shí)例代碼以及相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。
    2019-08-08
  • 使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫

    使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫

    這篇文章主要介紹了使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA2022版本創(chuàng)建maven?web項(xiàng)目的兩種方式詳解

    IDEA2022版本創(chuàng)建maven?web項(xiàng)目的兩種方式詳解

    創(chuàng)建maven?web項(xiàng)目有兩種方式,一種是使用骨架方式,一種是不使用骨架的方式,本文結(jié)合實(shí)例代碼給大家介紹了IDEA2022版本創(chuàng)建maven?web項(xiàng)目的兩種方式,需要的朋友可以參考下
    2023-02-02
  • java實(shí)現(xiàn)圖形化界面計(jì)算器

    java實(shí)現(xiàn)圖形化界面計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖形化界面計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • servlet重定向詳解(八)

    servlet重定向詳解(八)

    這篇文章主要為大家詳細(xì)介紹了servlet重定向的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • SpringBoot實(shí)現(xiàn)無限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐

    SpringBoot實(shí)現(xiàn)無限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot實(shí)現(xiàn)無限級(jí)評(píng)論回復(fù)的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 使用JSONObject.toJSONString 過濾掉值為空的key

    使用JSONObject.toJSONString 過濾掉值為空的key

    這篇文章主要介紹了使用JSONObject.toJSONString 過濾掉值為空的key,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論