• Mybatis 使用Mybatis时实体类属性名和表中的字段名不一致


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

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

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

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

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3.  
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4.  
      <mapper namespace="com.jqscm.mapper.SearchMapper">
    5.  
       
    6.  
      <select id="queryCertificationInfoByCerNumber" parameterType="string" resultMap="certificationResultMap">
    7.  
      SELECT * FROM t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
    8.  
      </select>
    9.  
      <!-- 通过resultMap映射实体类和表字段的关系 -->
    10.  
      <resultMap type="CertificationInfo" id="certificationResultMap">
    11.  
      <!-- 用id属性来映射主键字段 -->
    12.  
      <id property="cerNumber" column="cer_number"/>
    13.  
      <!-- 用result属性来映射非主键字段 -->
    14.  
      <result property="cerTime" column="cer_time"/>
    15.  
      <result property="cerType" column="cer_type"/>
    16.  
      <result property="shape" column="shape"/>
    17.  
      <result property="size" column="size"/>
    18.  
      </resultMap>
    19.  
      </mapper>

    --------------------- 本文来自 l4j 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lsq_java_4/article/details/60745383?utm_source=copy 

  • 相关阅读:
    使用RestTemplate上传文件到远程接口
    设计模式(五)之适配器模式
    设计模式(四)之装饰者模式
    设计模式(三)之模板方法模式
    设计模式(二)之责任链模式
    BUG-jQuery提交表单submit方法-TypeError: e[h] is not a function
    数据类型--集合 set
    数据类型--字典 dic
    字符 str 串需要记住的语法
    数据类型--列表 list
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/9719462.html
Copyright © 2020-2023  润新知