博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor

resultMap中,通常使用id、result子元素把java实体类的属性映射到数据库表的字段上。但是如果在遇到JavaBean只有有参构造函数时,我还需要使用构造器元素实现一个JavaBean的实例化和数据注入。今天小博老师就带领大家一起学习下ResultMap中的构造器元素constructor的使用方法。

继续我们之前的User类,我们加入一个构造函数:

博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor_第1张图片

对应的,resultMap应该做如下修改:

博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor_第2张图片

MyBatis使用参数类型来标记构造器,将结果注入构造器。Java无法通过发射获取参数名称,所以在创建constructor元素时,要确保参数按顺序传递、并且指定正确的参数类型。

构造方法注入的优点在于,允许在初始化时为类设置属性的值,而不用暴露出公有方法。

idArg和arg元素其他的属性和规则与id、result属性一样:

博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor_第3张图片

你可能感兴趣的:(博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor)