首页 > 其他 > 详细

mybatis实体为什么要提供一个无参的构造函数

时间:2020-02-28 13:32:01      阅读:133      评论:0      收藏:0      [点我收藏+]

提问: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

mybatis实体为什么要提供一个无参的构造函数

原文:https://www.cnblogs.com/asplover/p/12376550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!