欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法

 更新時間:2023年03月27日 15:17:45   作者:會洗碗的CV工程師  
這篇文章主要介紹了Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、使用#定義參數(shù)

1. 持久層接口添加根據名字內容模糊查詢方法

// 根據名字內容模糊查詢
    List<User> findByNameLike(String username);

2. UserMapper.xml映射文件添加標簽

<!-- 使用#定義參數(shù) -->
    <select id="findByNameLike" parameterType="string"             
    resultType="com.mybatisstudy.pojo.User">
        select * from user where username like #{name}
    </select>

        我們看到在映射文件中,parameterType的值為 string 而沒有寫java.lang.String ,這是為什么呢?參數(shù)/返回值類型為基本數(shù)據類型/包裝類/String等類型時,我們可以寫全類名,也可以寫別名。

        下表就是一些數(shù)據類型對應的別名

數(shù)據類型

別名
byte_byte
long_long
short_short
int_int
int_integer
double_double
float_float
boolean_boolean
Stringstring
Bytebyte
Longlong
Shortshort
Intergerint / interger
Doubledouble
Floatfloat
Booleanboolean
Datedate
BigDecimaldecimal / bigdecimal
Objectobject
Mapmap
HashMaphashmap
Listlist
ArrayListarraylist
Collectioncollection
Iteratoriterator

3. 添加測試方法

// 測試根據名字模糊查詢
    @Test
    public void testFindByNameLike(){
        String like = "%l%";
        List<User> list = userMapper.findByNameLike(like);
 
        list.forEach(System.out::println);
    }

4. 運行結果

OK,這里是成功查詢出來了,并且控制臺打印日志也和我們的參數(shù)一致 

二、使用$定義參數(shù)

模糊查詢如果不想在調用方法時參數(shù)加%,可以使用拼接參數(shù)的方式設置Sql:

1. UserMapper.xml映射文件更改標簽內容

<!-- 使用$定義參數(shù) -->
    <select id="findByNameLike" resultType="com.mybatisstudy.pojo.User" parameterType="string">
        select * from user where username like '%${value}%'
    </select>

2. 修改測試方法

// 測試根據名字模糊查詢
    @Test
    public void testFindByNameLike(){
        String like = "l";
        List<User> list = userMapper.findByNameLike(like);
 
        list.forEach(System.out::println);
    }

3. 運行結果

 #和$的區(qū)別:

#表示sql模板的占位符,$表示將字符串拼接到sql模板中。#可以防止sql注入,一般能用#就不用$。${}內部的參數(shù)名必須寫value。

三、使用<bind>標簽定義參數(shù)

如果使用 # 還不想在調用方法的參數(shù)中添加 % ,可以使用 <bind> , <bind> 允許我們在 Sql語句以外創(chuàng)建一個變量,并可以將其綁定到當前的Sql語句中。用法如下:

1. UserMapper.xml映射文件更改標簽內容

<!-- 使用<bind>標簽定義參數(shù) -->
    <select id="findByNameLike" parameterType="String" resultType="com.mybatisstudy.pojo.User">
        <bind name="likeName" value="'%' + username + '%'"/>
        select * from user where username like #{likeName}
    </select>

2. 運行結果

四、聚合查詢

1. 持久層接口添加查詢所有用戶個數(shù)方法

// 查詢用戶總數(shù)
    int findCount();

2. UserMapper.xml添加標簽

<!-- 聚合查詢 -->
    <select id="findCount" resultType="int">
        select count(id) from user
    </select>

3. 添加測試方法

// 測試聚合查詢方法
    @Test
    public void testFindCount(){
        System.out.println(userMapper.findCount());
    }

4. 運行結果

還是比較可靠的,確實查詢出來了用戶總數(shù) 

五、主鍵回填

        有時我們需要獲取新插入數(shù)據的主鍵值。如果數(shù)據庫中主鍵是自增的,這時我們就需要使用MyBatis的主鍵回填功能。

1. 持久層接口添加新增用戶方法

// 主鍵回填-新增用戶
    void add2(User user);

2. UserMapper.xml添加標簽

<!-- 主鍵回填 -->
    <insert id="add2" parameterType="com.mybatisstudy.pojo.User">
        <!-- keyProperty:主鍵屬性名,keyColumn:主鍵列名,resultType:主鍵類型,order:執(zhí)行時機 -->
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            select last_insert_id();
        </selectKey>
        insert into user(username,sex,address)
        values (#{username},#{sex},#{address})
    </insert>

        SELECT LAST_INSERT_ID():查詢剛剛插入的記錄的主鍵值,只適用于自增主鍵,且必須和insert語句一起執(zhí)行。

3. 添加測試方法

// 測試主鍵回填功能
    @Test
    public void testAdd2(){
        User user = new User("Lions","man","Beijing");
        userMapper.add2(user);
 
        session.commit();
        System.out.println(user.getId());
    }

4. 運行結果

        好,控制臺是成功顯示添加了,用戶id為11,那我們看看表里面是否成功添加了 

        確實是成功添加了,ok,本篇文章到此為止了,感謝小伙伴的瀏覽,順便點擊下面投一下票囖,看看您是否有學到了呢 

到此這篇關于Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法的文章就介紹到這了,更多相關Mybatis模糊查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java解壓zip文件完整代碼分享

    Java解壓zip文件完整代碼分享

    這篇文章主要介紹了Java解壓zip文件完整代碼分享,向大家分享了兩部分代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot項目整合攔截器詳解

    SpringBoot項目整合攔截器詳解

    這篇文章主要介紹了SpringBoot項目整合攔截器詳解,java里的攔截器是動態(tài)攔截Action調用的對象,它提供了一種機制可以使開發(fā)者在一個Action執(zhí)行的前后執(zhí)行一段代碼,攔截器用于在某個方法或者字段被訪問之前進行攔截,然后再之前或者之后加入某些操作,需要的朋友可以參考下
    2023-10-10
  • 解決window.location.href之后session丟失的問題

    解決window.location.href之后session丟失的問題

    今天小編就為大家分享一篇關于解決window.location.href之后session丟失的問題,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 使用@CachePut?更新數(shù)據庫和更新緩存

    使用@CachePut?更新數(shù)據庫和更新緩存

    這篇文章主要介紹了使用@CachePut?更新數(shù)據庫和更新緩存方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java8 ArrayList之forEach的使用

    Java8 ArrayList之forEach的使用

    這篇文章主要介紹了Java8 ArrayList之forEach的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JPA配置方式+逆向工程映射到Entity實體類

    JPA配置方式+逆向工程映射到Entity實體類

    這篇文章主要介紹了JPA配置方式+逆向工程映射到Entity實體類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java實現(xiàn)斗地主小游戲

    Java實現(xiàn)斗地主小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)斗地主小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Log4j日志記錄框架配置及用法解析

    Log4j日志記錄框架配置及用法解析

    這篇文章主要介紹了Log4j日志記錄框架配置及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java設計模式之抽象工廠模式淺析講解

    Java設計模式之抽象工廠模式淺析講解

    當系統(tǒng)所提供的工廠所需生產的具體產品并不是一個簡單的對象,而是多個位于不同產品等級結構中屬于不同類型的具體產品時需要使用抽象工廠模式,抽象工廠模式是所有形式的工廠模式中最為抽象和最具一般性的一種形態(tài)
    2022-08-08
  • Spring?Cloud微服務架構Sentinel數(shù)據雙向同步

    Spring?Cloud微服務架構Sentinel數(shù)據雙向同步

    這篇文章主要為大家介紹了Spring?Cloud微服務架構Sentinel數(shù)據雙向同步示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10

最新評論