Java MyBatis实体类属性名与数据库字段表名称不一致解决办法

1585364631
2023-03-12 / 0 评论 / 182 阅读 / 正在检测是否收录...

MyBatis实体类属性名与数据库字段表名称不一致解决办法

1. 查询字段时使用别名

对不一样的列名起别名,让别名和实体类的属性名一样

<mapper namespace="org.example.mapper.UserMapper">
    <select id="selectAll" resultType="user">
        select 数据库表字段名 as 实体类属性名 from user;
    </select>
</mapper>

但是每次查询都需要重新定义一次别名

使用sql片段的方式解决

<mapper namespace="org.example.mapper.UserMapper">
    <sql id="dataName">
        数据库表字段名 as 实体类属性名
    </sql>
    <select id="selectAll" resultType="user">
        select <include refid="dataName" /> from user;
    </select>
</mapper>

但是此方法缺点不灵活

2.使用resultMap映射别名

<mapper namespace="org.example.mapper.UserMapper">
    <resultMap id="dataName" type="user">
        <id column="id" property="id"></id>
        <result column="数据库表字段名" property="实体类属性名"></result>
    </resultMap>

    <select id="selectAll" resultMap="dataName">
        select * from user;
    </select>
</mapper>

id作为主键映射,result作为一般字段映射

0

评论 (0)

取消