springboot+mybatis中resultMap与驼峰命名

本文总阅读量
本文最后更新于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>

多对多映射

其实就是多个一对一映射

使用@Slf4j打印对象出现java.lang.StackOverflowError
springboot整合mybatis与mybatis-plus
Valaxy v0.18.5 驱动 | 主题 - Yun v0.18.5
本站总访问量
本站访客数 人次
本站已运行0 天0 小时0 分0 秒后缀