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

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ù)查詢(xún)等!

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

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

簡(jiǎn)單示例

翻頁(yè)查詢(xú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í)體帶查詢(xún)使用方法 ?輸出看結(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ù)說(shuō)明

查詢(xún)方式說(shuō)明
setSqlSelect設(shè)置 SELECT 查詢(xún)字段
whereWHERE 語(yǔ)句,拼接 + WHERE 條件
andAND 語(yǔ)句,拼接 + AND 字段=值
andNewAND 語(yǔ)句,拼接 + AND (字段=值)
orOR 語(yǔ)句,拼接 + OR 字段=值
orNewOR 語(yǔ)句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 內(nèi)容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查詢(xún) LIKE
notLike模糊查詢(xún) NOT LIKE
inIN 查詢(xún)
notInNOT IN 查詢(xún)
isNullNULL 值查詢(xún)
isNotNullIS NOT NULL
groupBy分組 GROUP BY
havingHAVING 關(guān)鍵詞
orderBy排序 ORDER BY
orderAscASC 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 條件語(yǔ)句
notExistsNOT EXISTS 條件語(yǔ)句
betweenBETWEEN 條件語(yǔ)句
notBetweenNOT BETWEEN 條件語(yǔ)句
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ù)庫(kù)中保持不變,如下:

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中沒(méi)有的字段,會(huì)字段賦值null

int result = mcTemplateMapper.updateById(mcTemplate);

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

相關(guān)文章

  • Java的CGLIB動(dòng)態(tài)代理深入解析

    Java的CGLIB動(dòng)態(tài)代理深入解析

    這篇文章主要介紹了Java的CGLIB動(dòng)態(tài)代理深入解析,CGLIB是強(qiáng)大的、高性能的代碼生成庫(kù),被廣泛應(yīng)用于AOP框架,它底層使用ASM來(lái)操作字節(jié)碼生成新的類(lèi),為對(duì)象引入間接級(jí)別,以控制對(duì)象的訪問(wèn),需要的朋友可以參考下
    2023-11-11
  • 基于ScheduledExecutorService的兩種方法(詳解)

    基于ScheduledExecutorService的兩種方法(詳解)

    下面小編就為大家?guī)?lái)一篇基于ScheduledExecutorService的兩種方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Spring?MVC請(qǐng)求處理流程和九大組件詳解

    Spring?MVC請(qǐng)求處理流程和九大組件詳解

    這篇文章主要介紹了Spring?MVC請(qǐng)求處理流程和九大組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • java虛擬機(jī)參數(shù)-D、-X和-XX的區(qū)別小結(jié)

    java虛擬機(jī)參數(shù)-D、-X和-XX的區(qū)別小結(jié)

    本文主要介紹了java虛擬機(jī)參數(shù)-D、-X和-XX的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringBoot Aop 詳解和多種使用場(chǎng)景解析

    SpringBoot Aop 詳解和多種使用場(chǎng)景解析

    aop面向切面編程,是編程中一個(gè)很重要的思想本篇文章主要介紹的是SpringBoot切面Aop的使用和案例,對(duì)SpringBoot Aop相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • java 地心坐標(biāo)系(ECEF)和WGS-84坐標(biāo)系(WGS84)互轉(zhuǎn)的實(shí)現(xiàn)

    java 地心坐標(biāo)系(ECEF)和WGS-84坐標(biāo)系(WGS84)互轉(zhuǎn)的實(shí)現(xiàn)

    這篇文章主要介紹了java 地心坐標(biāo)系(ECEF)和WGS-84坐標(biāo)系(WGS84)互轉(zhuǎn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Springboot獲取jar包中resources資源目錄下的文件

    Springboot獲取jar包中resources資源目錄下的文件

    今天在項(xiàng)目中遇到一個(gè)業(yè)務(wù)場(chǎng)景,需要用到resources資源目錄下的文件,本文主要介紹了Springboot獲取jar包中resources資源目錄下的文件,感興趣的可以了解一下
    2023-12-12
  • mybatis動(dòng)態(tài)sql之新增與更新方式

    mybatis動(dòng)態(tài)sql之新增與更新方式

    這篇文章主要介紹了mybatis動(dòng)態(tài)sql之新增與更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-11-11
  • java教程之二個(gè)arraylist排序的示例分享

    java教程之二個(gè)arraylist排序的示例分享

    常常遇到數(shù)組排序的問(wèn)題,下面提供二個(gè)java的arraylist排序示例,需要的朋友可以參考下
    2014-03-03

最新評(píng)論

织金县| 松溪县| 漳浦县| 平利县| 游戏| 尉犁县| 射洪县| 延边| 璧山县| 九龙坡区| 武陟县| 洪洞县| 正镶白旗| 宁强县| 阳西县| 丰台区| 汾西县| 富阳市| 永平县| 福海县| 安图县| 丰城市| 武义县| 新乡市| 宁都县| 鹰潭市| 商都县| 宁武县| 高邑县| 新和县| 绥化市| 蒙城县| 前郭尔| 张家港市| 新乐市| 南昌市| 丹寨县| 花垣县| 句容市| 区。| 连城县|