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

Mybatis省略@Param注解原理分析

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

環(huán)境配置:

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

起始原因:

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

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

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

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

編寫UserMapper.java,這里省略@Param注解。

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

編寫測試類

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路線如下: 直接上圖

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

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

那么如何解決呢?

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

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

<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é)果如何呢?

沒有問題,只是數(shù)據(jù)庫沒有匹配的數(shù)據(jù)。

那么為什么springboot項(xiàng)目我們沒有配置過這類的參數(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版本沒有添加該參數(shù)。

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

相關(guān)文章

  • java計(jì)算任意位水仙花數(shù)示例(回文數(shù))

    java計(jì)算任意位水仙花數(shù)示例(回文數(shù))

    這篇文章主要介紹了java計(jì)算任意位水仙花數(shù)示例(回文數(shù)),需要的朋友可以參考下
    2014-05-05
  • java后端合成圖片的實(shí)現(xiàn)示例

    java后端合成圖片的實(shí)現(xiàn)示例

    本文主要介紹了java后端合成圖片的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot整合MyBatis實(shí)現(xiàn)樂觀鎖和悲觀鎖的示例

    SpringBoot整合MyBatis實(shí)現(xiàn)樂觀鎖和悲觀鎖的示例

    這篇文章主要介紹了SpringBoot整合MyBatis實(shí)現(xiàn)樂觀鎖和悲觀鎖的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • MyBatis映射關(guān)系詳解

    MyBatis映射關(guān)系詳解

    本文重點(diǎn)介紹MyBatis映射關(guān)系重點(diǎn)是映射關(guān)系一對(duì)一,一對(duì)一映射方式結(jié)合應(yīng)用實(shí)例給大家詳細(xì)講解,對(duì)MyBatis映射關(guān)系相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-11-11
  • SpringBoot掃描不到Controller的解決方案

    SpringBoot掃描不到Controller的解決方案

    這篇文章主要介紹了SpringBoot掃描不到Controller的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • mybatis 查詢sql中in條件用法詳解(foreach)

    mybatis 查詢sql中in條件用法詳解(foreach)

    這篇文章主要介紹了mybatis 查詢sql中in條件用法詳解(foreach),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringMvc獲取頁面中的參數(shù)方法詳解

    SpringMvc獲取頁面中的參數(shù)方法詳解

    這篇文章主要介紹了SpringMvc獲取頁面中的參數(shù)方法詳解,獲取頁面的參數(shù)通常都是讓類實(shí)現(xiàn)設(shè)置HttpServletRequest request接口然后重寫接口中的方法的辦法來得到參數(shù),但是在Springmvc中有其他的獲取方法,需要的朋友可以參考下
    2023-10-10
  • Java中將List拆分為多個(gè)小list集合的實(shí)現(xiàn)代碼

    Java中將List拆分為多個(gè)小list集合的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java中如何將List拆分為多個(gè)小list集合,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 基于ReentrantLock的實(shí)現(xiàn)原理講解

    基于ReentrantLock的實(shí)現(xiàn)原理講解

    這篇文章主要介紹了ReentrantLock的實(shí)現(xiàn)原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Mybatis流式查詢之ResultHanlde問題

    Mybatis流式查詢之ResultHanlde問題

    這篇文章主要介紹了Mybatis流式查詢之ResultHanlde問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論