使用Mybatis时实体类属性名和表中的字段名不一致导致结果无法映射到实体类的解决办法

      开发中,实体类中的属性名和对应的表中的字段名不一定都是完全相同的,这样可能会导致用实体类接收返回的结果时导致查询到的结果无法映射到实体类的属性中,那么该如何解决这种字段名和实体类属性名不相同的冲突呢?

      方法一:通过在查询的SQL语句中定义字段名的别名的方式,让字段名的别名和实体类中的属性名一致,这样就可以实现实体类属性和表字段一一对应。(通过在SQL语句中定义别名的方法实现)

	<select id="queryCertificationInfoByCerNumber" parameterType="string" resultMap="certificationResultMap">
		SELECT cer_number cerNumber FROM, cer_time cerTime, cer_type cerType t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
	</select>

      方法二:通过<resultMap>来映射字段名和实体类属性名的一一对应关系。(使用Mybatis提供的解决方法)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jqscm.mapper.SearchMapper">

	<select id="queryCertificationInfoByCerNumber" parameterType="string" resultMap="certificationResultMap">
		SELECT * FROM t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
	</select>
	<!-- 通过resultMap映射实体类和表字段的关系 -->
	<resultMap type="CertificationInfo" id="certificationResultMap">
		<!-- 用id属性来映射主键字段 -->
		<id property="cerNumber" column="cer_number"/>
		<!-- 用result属性来映射非主键字段 -->
		<result property="cerTime" column="cer_time"/>
		<result property="cerType" column="cer_type"/>
		<result property="shape" column="shape"/>
		<result property="size" column="size"/>
	</resultMap>
</mapper>


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值