mybatis 中带下划线变量映射的坑

问题描述

    mybatis +Spring+mysql环境,进行查询,带有下划线的字段,比如create_date,实体中createDate,返回结果为null。

原因

由于 进行查询的时候,返回值是使用的resultType 对应的是实体,而这样create_date与createDate就不能一一对应,框架没那么智能。改为resultMap进行映射即可。

mybatis-config.xml

        <!-- 使用驼峰命名法转换字段。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类Category匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想该实体类的话,建议采用resultMap。