Mybatis数据库字段与实体类属性不一致


在编写sql语句时会碰到数据库字段与我们实体类对象中属性名不一致,导致无法给实体类属性赋值。


数据库:

实体类:
实体类属性


有以下三种方式解决:

  • 方式一:在编写SQL语句时给字段起别名与属性名一一对应
  • 方式二: 需要字段和属性命名符合规则,我们可以在 mybatis-config.xml配置文件中设置。
    字段名符合数据库的规则(使用_命名),实体类中的属性名符合Java的规则(使用驼峰命名法
<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

  • 方式三:使用ResultMap设置自定义映射
    resultMap属性:
    • id:表示自定义映射的唯一标识,不能重复
    • type:查询的数据要映射的实体类的类型
    • 子标签:
      • id:设置主键的映射关系
      • result:设置普通字段的映射关系
      • 子标签属性:
      • property:设置映射关系中实体类中的属性名
        • column:设置映射关系中表中的字段名
<!-- Mapper接口全路径 -->
<mapper namespace="com.snow.mapper.EmployeeMapper">
    <!--方式三:使用ResultMap设置自定义映射-->
    <resultMap id="empResultMap" type="employee">
        <id property="empId" column="emp_id"></id>
        <result property="empName" column="emp_name"></result>
        <result property="age" column="age"></result>
        <result property="sex" column="sex"></result>
        <result property="email" column="email"></result>
    </resultMap>

    <select id="getAllEmp" resultMap="empResultMap">
        select * from t_emp
    </select>
</mapper>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM