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>
本文作者:香酥豆腐皮
本文链接:https://www.cnblogs.com/Snowclod/p/16029470.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步