之前我们将sql返回值转换为java对象时,每条sql的返回值的字段名和java类中的字段名是一一对应的,ie:sql选择的user有username和password两个字段,java中的user对象也有两个一模一样的字段,在这种情况下,mybatis可以自动一一对应。
?如果不一致怎么办呢?这时我们需要配置自己的映射规则。我们用resultMap标签来编写行的映射规则:
<!--
这里我们设置映射规则,把数据库的password映射到java user类的username字段
-->
<resultMap id="Test" type="User">
<result column="password" property="username"/>
<result column="username" property="password"/>
</resultMap>
然后将原来mapper里的?resultType改为map
rusultmap属性对应的就是刚刚编写的映射规则。
通过指定映射规则,我们现在用户名和密码一栏就发生了交换,因为我们将其映射字段进行了交换。
最简单的解决方法:确保java字段和sql字段的一致性!
2.映射的那个java对象有多个构造器怎么办