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

Mybatis省略@Param注解原理分析

 更新時(shí)間:2022年06月22日 11:03:37   作者:吳明_yst  
這篇文章主要介紹了Mybatis省略@Param注解原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

環(huán)境配置:

  • jdk1.8
  • mybatis3.4.1
  • springboot2.0

起始原因:

編寫(xiě)mybatis的Demo程序時(shí),mapper傳遞多參數(shù)時(shí),需要添加@param注解指定傳遞參數(shù)名稱(chēng),而在springboot整合的mybatis則可以省略@param注解。于是乎,開(kāi)始探究原因。

涉及到的知識(shí)點(diǎn):

jdk8新增了-parameters參數(shù),開(kāi)啟此參數(shù)可以將編譯后的class文件保留源碼中的參數(shù)名稱(chēng),而不是(arg0,arg1)。保留參數(shù)名稱(chēng)方便判斷反射參數(shù)。此處便運(yùn)用在Mybatis中mapper接口傳參中。

1、新建mybatis的Demo項(xiàng)目

編寫(xiě)UserMapper.java,這里省略@Param注解。

public interface UserMapper {
    User getUser(String username, String password);
}

編寫(xiě)測(cè)試類(lèi)

public class MyBatisTest {
    @Test
    public void testCrud() throws IOException {
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User admin = mapper.getUser("admin", "123456");
        System.out.println(admin);
    }
}

Debug路線(xiàn)如下: 直接上圖

此時(shí)參數(shù)封裝的結(jié)構(gòu)為:

然后就不出意外的報(bào)錯(cuò)了

那么如何解決呢?

2、添加-parameters參數(shù)后的執(zhí)行結(jié)果如下

在pom文件添加插件并參加參數(shù),參數(shù)的意義: 讓編譯器在編譯代碼時(shí),保留參數(shù)的實(shí)際名稱(chēng)。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

添加插件和參數(shù)后, 可以在idea查看編譯器添加參數(shù)的情況。

此時(shí)Mybatis封裝參數(shù)效果如下:

那么執(zhí)行結(jié)果如何呢?

沒(méi)有問(wèn)題,只是數(shù)據(jù)庫(kù)沒(méi)有匹配的數(shù)據(jù)。

那么為什么springboot項(xiàng)目我們沒(méi)有配置過(guò)這類(lèi)的參數(shù),但是也可以省略@param注解呢?

3、springboot項(xiàng)目為什么不用另外配置-parameters參數(shù)呢

新建一個(gè)springboot項(xiàng)目(2.0.3版本)

此時(shí)就看到了熟悉的關(guān)鍵字。為了確認(rèn)是否這個(gè)參數(shù),于是乎將這一段注釋掉。

想法得到驗(yàn)證。

springboot1.5.1版本沒(méi)有添加該參數(shù)。

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

相關(guān)文章

  • Spring中存對(duì)象和取對(duì)象的方式詳解

    Spring中存對(duì)象和取對(duì)象的方式詳解

    這篇文章主要介紹了Spring中存對(duì)象和取對(duì)象的方式,Spring中更簡(jiǎn)單的存對(duì)象與取對(duì)象的方式是注解,注解實(shí)現(xiàn)有兩種方式:一在編譯的時(shí)候,把注解替換成相關(guān)代碼,并添加到我們?cè)瓉?lái)的代碼中,二攔截方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08
  • SpringCloud集成Hystrix熔斷過(guò)程分步分解

    SpringCloud集成Hystrix熔斷過(guò)程分步分解

    通過(guò)hystrix可以解決雪崩效應(yīng)問(wèn)題,它提供了資源隔離、降級(jí)機(jī)制、融斷、緩存等功能。接下來(lái)通過(guò)本文給大家分享SpringCloud集成Hystrix熔斷,感興趣的朋友一起看看吧
    2022-09-09
  • java基礎(chǔ)之String知識(shí)總結(jié)

    java基礎(chǔ)之String知識(shí)總結(jié)

    今天帶大家來(lái)回顧一下Java基礎(chǔ),文中詳細(xì)總結(jié)了String的相關(guān)知識(shí),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Boot項(xiàng)目中定制攔截器的方法詳解

    Spring Boot項(xiàng)目中定制攔截器的方法詳解

    這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java中@Accessors注解的具體使用

    Java中@Accessors注解的具體使用

    @Accessors是Lombok提供的注解之一,用于自動(dòng)生成getter和setter方法,本文主要介紹了@Accessors注解的常用屬性,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • java多線(xiàn)程實(shí)現(xiàn)文件下載

    java多線(xiàn)程實(shí)現(xiàn)文件下載

    這篇文章主要為大家詳細(xì)介紹了java多線(xiàn)程實(shí)現(xiàn)文件下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • mybatis?實(shí)現(xiàn)字段大小寫(xiě)賦值

    mybatis?實(shí)現(xiàn)字段大小寫(xiě)賦值

    這篇文章主要介紹了mybatis?實(shí)現(xiàn)字段大小寫(xiě)賦值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 解決Spring使用@MapperScan問(wèn)題

    解決Spring使用@MapperScan問(wèn)題

    這篇文章主要介紹了解決Spring使用@MapperScan問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 使用Spring掃描Mybatis的mapper接口的三種配置

    使用Spring掃描Mybatis的mapper接口的三種配置

    這篇文章主要介紹了使用Spring掃描Mybatis的mapper接口的三種配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Redisson公平鎖的源碼解讀分享

    Redisson公平鎖的源碼解讀分享

    Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory?Data?Grid)。這篇文章主要通過(guò)源碼和大家聊聊Redisson公平鎖,需要的可以了解一下
    2022-11-11

最新評(píng)論

绥中县| 皋兰县| 长治市| 从化市| 中西区| 新津县| 榆中县| 奎屯市| 大悟县| 玉门市| 新蔡县| 正宁县| 陵水| 休宁县| 稷山县| 莒南县| 吉隆县| 东光县| 石狮市| 长顺县| 西青区| 景东| 房山区| 高淳县| 连江县| 临海市| 淮滨县| 怀宁县| 晋州市| 石渠县| 宾阳县| 景德镇市| 资中县| 鄢陵县| 柏乡县| 绥阳县| 桐城市| 昭通市| 明溪县| 钟山县| 健康|