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

Mybatis-Plus select不去查全部字段和去重問(wèn)題

 更新時(shí)間:2026年04月24日 09:15:49   作者:趙廣陸  
本文介紹了MyBatis-Plus中查詢(xún)指定字段的方法和查詢(xún)分組查詢(xún)的方法,還介紹了使用`queryWrapper`的的`select()`方法來(lái)指定查詢(xún)的字段,并并并并提供了查詢(xún)?nèi)ブ?IN操作和特殊字符轉(zhuǎn)義的示例代碼

1、mybatis-plus select查詢(xún)語(yǔ)句默認(rèn)是查全部字段

有兩種方法可以指定要查詢(xún)的字段

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL COMMENT '主鍵',
  `name` varchar(30) DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年齡',
  `email` varchar(50) DEFAULT NULL COMMENT '郵箱',
  `manager_id` bigint(20) DEFAULT NULL COMMENT '直屬上級(jí)id',
  `create_time` datetime DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  PRIMARY KEY (`id`),
  KEY `manager_fk` (`manager_id`),
  CONSTRAINT `manager_fk` FOREIGN KEY (`manager_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1、user表只需要查詢(xún)出name和age兩個(gè)字段的數(shù)據(jù),可以使用queryWrapper的select()方法指定要查詢(xún)的字段

    @Test
    public void selectByWrapper10() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("name", "age").like("name", "雨");
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }

日志輸出sql:

DEBUG==> Preparing: SELECT name,age FROM user WHERE name LIKE ?
DEBUG==> Parameters: %雨%(String)
TRACE<== Columns: name, age
TRACE<== Row: 張雨琪, 31
TRACE<== Row: 劉紅雨, 31
DEBUG<== Total: 2

2、user表要查詢(xún)出除manager_id和create_time外其它所有字段的數(shù)據(jù),同樣也是使用queryWrapper的select()方法

    @Test
    public void selectByWrapper11() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select(User.class, info -> !info.getColumn().equals("manager_id")
                && !info.getColumn().equals("create_time"));
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }

日志輸出sql:

DEBUG==> Preparing: SELECT id,name,age,email FROM user
DEBUG==> Parameters:
TRACE<== Columns: id, name, age, email
TRACE<== Row: 1087982257332887553, 大boss, 40, boss@baomidou.com
TRACE<== Row: 1088248166370832385, 王天風(fēng), 25, wtf@baomidou.com
TRACE<== Row: 1088250446457389058, 李藝偉, 28, lyw@baomidou.com
TRACE<== Row: 1094590409767661570, 張雨琪, 31, zjq@baomidou.com
TRACE<== Row: 1094592041087729666, 劉紅雨, 31, lhm@baomidou.com
DEBUG<== Total: 5

2、Mybatis plus實(shí)現(xiàn)Distinct去重功能

可以使用mybatis自帶的語(yǔ)法,去重的話(huà)也可以進(jìn)行分組查詢(xún),或者讓java處理的set方法

	QueryWrapper queryWrapper = new QueryWrapper();
	queryWrapper.select("DISTINCT no,type").orderByAsc("oldlu");
	return mapper.selectList(queryWrapper);

查詢(xún)出后的結(jié)果輸出類(lèi)型,可以參考如下:

	QueryWrapper<User> queryWrapper = new QueryWrapper<>();
	queryWrapper.select("DISTINCT no,type").orderByAsc("oldlu");
	return mapper.selectList(queryWrapper);

3、Mybatis plus實(shí)現(xiàn)in操作

如果是List類(lèi)型的String,例如:List這種類(lèi)型的,就直接放值就可以了,本文講的是當(dāng)你查詢(xún)到的是一個(gè)list集合如何遍歷取值,否則要寫(xiě)sql和接口就顯得很麻煩。

步驟如下:

//查詢(xún)到list集合
List<User> userList = userService.selectById(id);
//結(jié)果集
List<String> resultList = new ArrayList<>();
//遍歷集合取值
 userList .forEach(item->{
      resultList.add(item.getYouNeedId());
 });
 //條件構(gòu)造器in上手使用
 QueryWrapper<User> qw = new QueryWrapper<>();
 qw.in("you_need_id", resultList);
 //這里有個(gè)分頁(yè)的查詢(xún),你也可以不用分頁(yè),用mybatisplus里面封裝的其他方法
 IPage<User> userIPage = userMapper.selectPage(page, qw);
 //返回查詢(xún)結(jié)果,getRecords也是mybatisplus里面封裝的方法
 return contractRecordIPage.getRecords();

4、mybatis 轉(zhuǎn)義對(duì)照表

這種問(wèn)題在xml處理sql的程序中經(jīng)常需要我們來(lái)進(jìn)行特殊處理。

?其實(shí)很簡(jiǎn)單,我們只需作如下替換即可避免上述的錯(cuò)誤:

<<=>>=&"
<<=>>=&'"

不多說(shuō)話(huà),代碼表示。

<!-- 分頁(yè)查詢(xún)-->
<select id="getKaoShiPageList" resultMap="kaoShiBean" parameterType="com.example.demo.kaoshi.beans.kaoShiBean">
    select * from tb_pxks_kaoshi
    <where>
        <if test="zy !=null and zy!= ''">
            and zy='${zy}'
        </if>
        <if test="ksrqFrom !=null and ksrqFrom!= ''">
            and ksrq >='${ksrqFrom}'
        </if>
        <if test="ksrqTo !=null and ksrqTo!= ''">
            and ksrq <='${ksrqTo}'
        </if>
    </where>
    order  by ksrq desc

總結(jié)

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

相關(guān)文章

  • java中接口冪等性的五種實(shí)現(xiàn)方法

    java中接口冪等性的五種實(shí)現(xiàn)方法

    在java中保證接口冪等性,即多次調(diào)用同一接口產(chǎn)生與單次調(diào)用相同的結(jié)果,不會(huì)引發(fā)副作用,需要結(jié)合業(yè)務(wù)場(chǎng)景選擇合適的方案,下面就來(lái)介紹五種實(shí)現(xiàn)方法,感興趣的可以了解一下
    2025-09-09
  • 使用Spring?Retry實(shí)現(xiàn)業(yè)務(wù)異常重試

    使用Spring?Retry實(shí)現(xiàn)業(yè)務(wù)異常重試

    在系統(tǒng)中經(jīng)常遇到業(yè)務(wù)重試的邏輯,比如三方接口調(diào)用,timeout重試三遍,異常處理重試的兜底邏輯等,本文給大家介紹一下如何使用Spring?Retry優(yōu)雅的實(shí)現(xiàn)業(yè)務(wù)異常重試,需要的朋友可以參考下
    2024-01-01
  • spring boot項(xiàng)目快速構(gòu)建的全步驟

    spring boot項(xiàng)目快速構(gòu)建的全步驟

    這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目快速構(gòu)建的全步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過(guò)程詳解

    SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過(guò)程詳解

    這篇文章主要介紹了SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 利用Lambda表達(dá)式創(chuàng)建新線(xiàn)程案例

    利用Lambda表達(dá)式創(chuàng)建新線(xiàn)程案例

    這篇文章主要介紹了利用Lambda表達(dá)式創(chuàng)建新線(xiàn)程案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java使用JDBC連接數(shù)據(jù)庫(kù)

    Java使用JDBC連接數(shù)據(jù)庫(kù)

    本文詳細(xì)講解了Java使用JDBC連接數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Java的Spring框架中bean的繼承與內(nèi)部bean的注入

    Java的Spring框架中bean的繼承與內(nèi)部bean的注入

    這篇文章主要介紹了Java的Spring框架中bean的繼承與內(nèi)部bean的注入,Spring框架是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • 又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用

    又又叕出BUG啦!理智分析Java NIO的ByteBuffer到底有多難用

    網(wǎng)絡(luò)數(shù)據(jù)的基本單位永遠(yuǎn)是byte,Java NIO提供ByteBuffer作為字節(jié)的容器,但該類(lèi)過(guò)于復(fù)雜,有點(diǎn)難用.本篇文章就帶大家簡(jiǎn)單了解一下 ,需要的朋友可以參考下
    2021-06-06
  • SpringBoot項(xiàng)目啟動(dòng)后立馬自動(dòng)關(guān)閉的解決方案

    SpringBoot項(xiàng)目啟動(dòng)后立馬自動(dòng)關(guān)閉的解決方案

    這篇文章主要介紹了SpringBoot項(xiàng)目啟動(dòng)后立馬自動(dòng)關(guān)閉的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解JAVA 抽象類(lèi)

    詳解JAVA 抽象類(lèi)

    這篇文章主要介紹了JAVA 抽象類(lèi)的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評(píng)論

石楼县| 尉氏县| 子洲县| 金阳县| 孝义市| 赤水市| 泌阳县| 青州市| 永和县| 双柏县| 龙岩市| 祁阳县| 泰宁县| 南京市| 德昌县| 麻城市| 嘉峪关市| 绥滨县| 阜平县| 卢龙县| 油尖旺区| 龙里县| 泾阳县| 济宁市| 安国市| 邵武市| 古田县| 海伦市| 综艺| 禄劝| 桂东县| 招远市| 南阳市| 水富县| 长葛市| 康定县| 荣成市| 兴和县| 河东区| 江津市| 石城县|