MyBatis Mapper ResultMap constructor

转自:http://blog.****.net/bwf_erg/article/details/54986321


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

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

MyBatis Mapper ResultMap constructor

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

MyBatis Mapper ResultMap constructor

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

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

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

MyBatis Mapper ResultMap constructor