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

MyBatis中有關(guān)int和Integer的使用方式

 更新時(shí)間:2023年03月31日 08:51:48   作者:七天曬網(wǎng)  
這篇文章主要介紹了MyBatis中有關(guān)int和Integer的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

有關(guān)int和Integer的使用

int 類(lèi)型,在默認(rèn)情況下不賦值為0,執(zhí)行到mybatis的更新語(yǔ)句時(shí),被當(dāng)做數(shù)字0,而非null

Integer的默認(rèn)值為null,即Integer可以區(qū)分出未賦值和值為0的區(qū)別,int則無(wú)法表達(dá)出未賦值的情況,

總結(jié):在實(shí)體類(lèi)中盡量使用Integer修飾,Integer可以區(qū)分出未賦值和值為0的區(qū)別,我們大部分做判斷都是以“”null“”去判斷的。

? ? /**
? ? ?* 主鍵字段
? ? ?*/
? ? @TableId(type = IdType.AUTO) //根據(jù)數(shù)據(jù)庫(kù)類(lèi)型設(shè)置自增
? ? private Integer id;

自增主鍵為integer類(lèi)型,對(duì)應(yīng)數(shù)據(jù)庫(kù)列類(lèi)型為int,如果不加這個(gè)配置的話,就會(huì)默認(rèn)將跟隨全局。

如果你的數(shù)據(jù)庫(kù)是int類(lèi)型且自增的話,那么mybatis-plus會(huì)默認(rèn)插入Long類(lèi)型的自增id,導(dǎo)致報(bào)錯(cuò),當(dāng)然你可以考慮在數(shù)據(jù)庫(kù)里把id設(shè)置成bigint類(lèi)型,實(shí)體類(lèi)里用Long來(lái)作為主鍵id

int和Integer的區(qū)別

1、Integer是int的包裝類(lèi),int則是java的一種基本數(shù)據(jù)類(lèi)型 

2、Integer變量必須實(shí)例化后才能使用,而int變量不需要 

3、Integer實(shí)際是對(duì)象的引用,當(dāng)new一個(gè)Integer時(shí),實(shí)際上是生成一個(gè)指針指向此對(duì)象;而int則是直接存儲(chǔ)數(shù)據(jù)值 

4、Integer的默認(rèn)值是null,int的默認(rèn)值是0

延伸: 

關(guān)于Integer和int的比較 

1、由于Integer變量實(shí)際上是對(duì)一個(gè)Integer對(duì)象的引用,所以?xún)蓚€(gè)通過(guò)new生成的Integer變量永遠(yuǎn)是不相等的(因?yàn)閚ew生成的是兩個(gè)對(duì)象,其內(nèi)存地址不同)。

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false

2、Integer變量和int變量比較時(shí),只要兩個(gè)變量的值是向等的,則結(jié)果為true(因?yàn)榘b類(lèi)Integer和基本數(shù)據(jù)類(lèi)型int比較時(shí),java會(huì)自動(dòng)拆包裝為int,然后進(jìn)行比較,實(shí)際上就變?yōu)閮蓚€(gè)int變量的比較)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true

3、非new生成的Integer變量和new Integer()生成的變量比較時(shí),結(jié)果為false。(因?yàn)榉莕ew生成的Integer變量指向的是java常量池中的對(duì)象,而new Integer()生成的變量指向堆中新建的對(duì)象,兩者在內(nèi)存中的地址不同)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false

4、對(duì)于兩個(gè)非new生成的Integer對(duì)象,進(jìn)行比較時(shí),如果兩個(gè)變量的值在區(qū)間-128到127之間,則比較結(jié)果為true,如果兩個(gè)變量的值不在此區(qū)間,則比較結(jié)果為false

Integer i = 100;
Integer j = 100;
System.out.print(i == j); //true
Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

對(duì)于第4條的原因: 

java在編譯Integer i = 100 ;時(shí),會(huì)翻譯成為Integer i = Integer.valueOf(100);,而java API中對(duì)Integer類(lèi)型的valueOf的定義如下:

public static Integer valueOf(int i){
? ? assert IntegerCache.high >= 127;
? ? if (i >= IntegerCache.low && i <= IntegerCache.high){
? ? ? ? return IntegerCache.cache[i + (-IntegerCache.low)];
? ? }
? ? return new Integer(i);
}

java對(duì)于-128到127之間的數(shù),會(huì)進(jìn)行緩存,Integer i = 127時(shí),會(huì)將127進(jìn)行緩存,下次再寫(xiě)Integer j = 127時(shí),就會(huì)直接從緩存中取,就不會(huì)new了

總結(jié)

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

相關(guān)文章

  • 簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí)原理

    簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí)原理

    這篇文章主要介紹了簡(jiǎn)單了解JavaCAS的相關(guān)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot如何使用@Cacheable進(jìn)行緩存與取值

    SpringBoot如何使用@Cacheable進(jìn)行緩存與取值

    這篇文章主要介紹了SpringBoot如何使用@Cacheable進(jìn)行緩存與取值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Springboot整合thymleaf模板引擎過(guò)程解析

    Springboot整合thymleaf模板引擎過(guò)程解析

    這篇文章主要介紹了Springboot整合thymleaf模板引擎過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 使用@PathVariable時(shí)候無(wú)法將參數(shù)映射到變量中的解決

    使用@PathVariable時(shí)候無(wú)法將參數(shù)映射到變量中的解決

    這篇文章主要介紹了使用@PathVariable時(shí)候無(wú)法將參數(shù)映射到變量中的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 通過(guò)實(shí)例了解JavaBean開(kāi)發(fā)及使用過(guò)程解析

    通過(guò)實(shí)例了解JavaBean開(kāi)發(fā)及使用過(guò)程解析

    這篇文章主要介紹了通過(guò)實(shí)例了解JavaBean開(kāi)發(fā)及使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解使用spring aop實(shí)現(xiàn)業(yè)務(wù)層mysql 讀寫(xiě)分離

    詳解使用spring aop實(shí)現(xiàn)業(yè)務(wù)層mysql 讀寫(xiě)分離

    本篇文章主要介紹了使用spring aop實(shí)現(xiàn)業(yè)務(wù)層mysql 讀寫(xiě)分離,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 一篇文章帶你搞定SpringBoot中的熱部署devtools方法

    一篇文章帶你搞定SpringBoot中的熱部署devtools方法

    這篇文章主要介紹了一篇文章帶你搞定SpringBoot中的熱部署devtools方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中啟動(dòng)jar包命令舉例詳解

    Java中啟動(dòng)jar包命令舉例詳解

    這篇文章主要介紹了Java中啟動(dòng)jar包命令的相關(guān)資料,文中介紹了在Windows和Linux環(huán)境下啟動(dòng)和運(yùn)行Java程序的方法,包括使用`java?-jar`和`javaw`命令啟動(dòng),以及如何在后臺(tái)運(yùn)行程序、重定向輸出和錯(cuò)誤信息、以及如何停止程序,需要的朋友可以參考下
    2024-12-12
  • 解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xxxController required

    解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xx

    這篇文章主要介紹了解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xxxContr問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • springboot?整合sentinel的示例代碼

    springboot?整合sentinel的示例代碼

    本文主要介紹了springboot?整合sentinel的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評(píng)論

建始县| 金堂县| 内丘县| 藁城市| 保山市| 五河县| 寿宁县| 宁夏| 台东市| 叶城县| 防城港市| 河源市| 盱眙县| 湘潭县| 正宁县| 龙山县| 耿马| 休宁县| 陇川县| 图木舒克市| 顺义区| 天长市| 扎赉特旗| 洞头县| 阜阳市| 潜山县| 山西省| 西城区| 阿坝县| 龙里县| 盐源县| 开封县| 土默特左旗| 锡林郭勒盟| 九台市| 莱州市| 巴彦淖尔市| 济南市| 同心县| 邹平县| 科尔|