zoukankan      html  css  js  c++  java
  • 数据库字段名称与实体类属性不一致的处理措施


    数据库字段名称与实体类属性不一致的处理措施

    解决方案1

     设定显示列的别名,让显示列的别名与实体类的属性名相同

     优点: 操作简单,容易理解

     缺点: 当这样的语句出现的次数过多的时候,到时冗余代码增多,这些别名不能重用

     适用场景: 语句出现较少的查询时列较少的时候

     -->

    <selectid="selectStudentAll1" resultType="stu">
    
    selectid ,name stuName ,age stuAge from t_student
    
    </select>

    <!--

      解决方案2

     使用resultMap自定义封装规则

     优点: 这个封装规则可以被重复的使用,解决解决方案1的缺点

     缺点: 需要额外定义一个封装对象并对它进行维护

     适用场景: 语句出现次数较多大于等于2次 字段较多的时候

     -->

     <!-- 自定义结果封装规则

             属性

             type  用于指定将结果集 封装到哪个实体类中,取值为类的全限定名或在主配置文件中定义的别名

             id    这个自定义规则的唯一标识,不能与其他的resultMap相同,用语给select标签中的resultMap属性引用

     -->

     <resultMap type="stu"id="stuMap">

     <!--

                     用于主键列数据映射

               属性

               column 指定结果集中的显示列的列名

               property 指定 resultMap标签中type所指定的这个实体类中的属性名

             MyBatis会将column所指定的这个列的数据,设置到propety所指定的这个属性中

      -->

             <idcolumn="id" property="id" />

             <!--普通列数据映射 -->

             <resultcolumn="name" property="stuName"/>

             <resultcolumn="age" property="stuAge"/>

     </resultMap>

    <selectid="selectStudentAll2" resultMap="stuMap">

    select* from t_student

    </select>

    <!--

     解决方案3

     使用Map集合封装结果集中的数据,MyBatis会使用显示列的名字作为Map集合的key,使用显示列所对应的数据,作为Map集合的value

     将每一条数据分别封装到不同的Map集合中

     优点: 简单,可以重复使用,又无需额外维护封装规则

     缺点: 破坏了ORM的映射规则

     适用场景: 进行多表查询时,注意:多个表中的可能会出现相同的列名,这样不会导致错误但是会导致Map集合中的数据不准确

     -->

    <selectid="selectStudentAll3" resultType="map">

    select* from t_student

    </select>

            用as关键字声明别名

    1
    select 字段1 as 字段1别名,字段2 as 字段2别名 from 表名 as 表别名


    ---------------------
    作者:haokinglong_java
    来源:CSDN
    原文:https://blog.csdn.net/hjl021/article/details/79069276
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    两个服务器上SQLServer实例之间配置Service Broker示例
    处理数据库镜像问题的一个案例
    oracel修改密码
    Oracle报错
    如何创建ORACLE大文件表空间
    创建、删除表空间
    oracle中新建用户和赋予权限
    非常全的VsCode快捷键
    VS Code常用快捷键
    启动Weblogic问题集锦
  • 原文地址:https://www.cnblogs.com/zhulina-917/p/10092617.html
Copyright © 2011-2022 走看看