mybantis 映射器的自动映射和驼峰映射

映射器的自动映射和驼峰映射

mybatis提供了自动映射功能,在默认情况下是开启的。在setting中有两个可以配置的选项 autoMappingBehavior和mapUnderscoreToCamelCase。它们分别控制自动映射和驼峰式映射。
配置自动映射的取值范围是:
- NONE 不自动进行映射
- PARTIAL 默认值,只对没有嵌套的结果集进行自动映射
- FULL 对于所有的结果集进行映射,包括嵌套结果集。

<select id="getRole" parameterType="role" resultType="role">
        SELECT 
            id,roleName , note 
        FROM 
            role 
        WHERE 
            id = #{id}
    select>

当我们数据库中字段名为roleName且对应的pojo中的属性名称也为roleName时,可以完成自动映射。但是当数据库字段名为role_name样式时,可以通过开启驼峰映射方式,完成任务。
配置mapUnderscoreToCamelCase:

<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    settings> 

映射文件中的sql语句:

<select id="getRole" parameterType="role" resultType="role">
        SELECT 
            id,role_name , note 
        FROM 
            role 
        WHERE 
            id = #{id}
    select>

此时pojo中对应role_name字段的属性名仍为roleName。
但是mybatis会严格按照驼峰式映射规则完成映射,这样pojo和数据字段严格对应,降低了灵活性。在实际开发中有些映射更加复杂,所以一般采用resultMap方式,建立结果集映射。

你可能感兴趣的:(Mybatis)