mybatis實體為什么要提供一個無參的構造函數


提問:Mybatis查詢結果映射到實體類的時候,實體類為什么必須有一個空的構造函數?

類中如果沒有構造函數,隱藏是無參構造函數,方便實體類需要通過Mybatis進行動態反射生成。
如果實體類中一旦聲明構造函數,無參構造函數則不存在。
select * from table_name 如果“*”表示的字段個數與設置的有參構造函數不同,mybatis無法進動態反射生成報錯

可以建一個無參孝構函數,可解決此類問題,

或者創建“*”表示字段與構造函數字段數一樣多。

 



答:Mybatis框架會調用這個默認構造方法來構造實例對象,即實體類需要通過Mybatis進行動態反射生成。

反射的Class.forName("className").newInstance();需要對應的類提供一個無參構造函數。

備注:

如果在類中沒有提供任何構造方法,虛擬機會自動提供默認構造方法(無參構造器),但是如果提供了其他有參數的構造方法的話,虛擬機就不再為提供默認構造方法,所以默認的構造方法不是必須的,只在有多個構造方法時才是必須的顯式聲明的。
————————————————
版權聲明:本文為CSDN博主「北辰之北灬」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/pp_fzp/article/details/103459500


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM