本文最后更新于2 分钟前,文中所描述的信息可能已发生改变。
当数据库中表的字段名与我们java实体中的属性名不同时我们就需要手动指定映射关系,或进行一些配置。
一对一关系的映射 
- 方法一:在springboot的配置文件中开启mybatis的驼峰命名
mybatis.configuration.map-underscore-to-camel-case=true - 方法二:在mybatis的配置文件中通过
<settings>下的<setting name="mapUnderscoreToCamelCase" value="true"/>设置,并在springboot的配置文件中导入mybatis.config-location=classpath:mybatis-config.xml注意:两者不可以同时使用! 
一对多的映射 
手动在mapper.xml文件中编写<resultMap>来指定映射关系。如果返回类型使用了<resultMap>此时嵌套的映射关系中配置的驼峰命名不生效,也就是说即使java实体与数据库中的表的字段的名字相同也需要手动再指定一遍。示例:
xml
<resultMap id="userMap" type="com.briup.bean.User">
    <id property="id" column="id"/>
    <result property="nickName" column="nick_name"/>
    <result property="loginName" column="login_name"/>
    <result property="passwordMd5" column="password_md5"/>
    <result property="phone" column="phone"/>
    <result property="eMail" column="e_mail"/>
    <result property="address" column="address"/>
    <result property="isLock" column="is_lock"/>
    <collection property="addresses" ofType="com.briup.bean.ShippingAddress">
        <id property="id" column="a_id"/>
        <result property="name" column="name"/>
        <result property="address" column="a_add"/>
        <result property="phoneNum" column="phone_num"/>
        <result property="defaultValue" column="default_value"/>
    </collection>
</resultMap>
<!-- 此处的返回类型使用的是resultMap来指定的 -->
<select id="findByLoginName" resultMap="userMap">
    select *,spa.id as a_id,spa.address as a_add from
    t_user u left join t_shipping_address spa on u.id = spa.user_id
    where u.login_name = #{loginName}
</select>多对多映射 
其实就是多个一对一映射