mybitis中对象字段与表中字段名称不匹配

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

      方法一:通过在查询的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
posted @   brandon.zhang  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示