關(guān)于mybatis callSettersOnNulls 配置解析
今天做了一件坑了自己的事情,為此浪費了好多時間。。。
在mybatis的設(shè)置中,看到了這樣的一行設(shè)置。出于程序員的好奇,去搜索了一下,這條設(shè)置是干什么的?! ?/p>
<setting name="callSettersOnNulls" value="true"/>
在網(wǎng)上眾多大神的解答下,終于一知半解了。
在一般查詢中,如果用map接受查詢結(jié)果時,會自動將查詢結(jié)果為null的字段忽略,這樣就造成取參數(shù)時報空指針異常的情況。
如果設(shè)置了這條屬性之后,mybatis就不會忽略這些字段,你依然能get到這些key,只不過value為null,這樣也方便。
那么坑來了,這種設(shè)置的情況下,會出現(xiàn)2種比較特殊的情況。
1.如果整個查詢的所有字段都沒有值,就是查詢到0條記錄時,那么接受到的map是什么結(jié)果?
答案是,我們會接收到一個所有key值都為null 的map 而不是一個為null的map。
2.如果只查詢一個字段,而用map接收,此時為null是什么結(jié)果?
答案是,我們會接收到一個為null的map,跟上面情況正好相反。
總結(jié)
以上所述是小編給大家介紹的關(guān)于mybatis callSettersOnNulls 配置解析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
動態(tài)修改spring?aop?切面信息提升自動日志輸出框架效率
這篇文章主要為大家介紹了動態(tài)修改spring?aop切面信息提升自動日志輸出框架效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Java源碼解析阻塞隊列ArrayBlockingQueue功能簡介
今天小編就為大家分享一篇關(guān)于Java源碼解析阻塞隊列ArrayBlockingQueue功能簡介,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
Java并發(fā)編程示例(二):獲取和設(shè)置線程信息
這篇文章主要介紹了Java并發(fā)編程示例(二):獲取和設(shè)置線程信息,本文是系列文章的第二篇,本文著重講解Thread類的幾個重要屬性,需要的朋友可以參考下2014-12-12

