• 5.Mybatis的输出映射(就是对查询的结果集的映射)


    视频地址:http://edu.51cto.com/sd/be679

    Mybatis的输出映射,也就是对查询结果集的一个映射,主要有两种:

        1.resultType(不需要配置,可以直接用)

          一般是实体类

          基本类型也可以

        2.resultMap(需要配置resultMap与之对应)

      1.resultType返回结果是实体类,这种写法比较简单,直接贴代码,有几个要明白的地方就是:

        查询出来的列名和我们的实体类的属性名必须一致,如果不一致,映射不成功。

          有一个或者一个以上一致:不一致的显示为null

          全部不一致:该对象不被创建

    <select id="findAll" resultType="com.etc.entity.Student">
            select * from t_student
        </select>

      2.resultType返回的是基本类型,写法比较简单但是有一个要求: (resultType="java.lang.Integer")

        就是要求你查询出来的结果必须只有一行且一列

      3.返回的是resultMap,这种比较麻烦一点,需要配置一个resultMap与之对应(目前这里讲的是单表的,关联表的后面会说),做法主要有三步

        1.写好sql

    select sid sid_,name name_,sex sex_,hobbies hobbies_ from t_student

        看看这个sql的查询结果    

        2.配置一个resultMap

    <resultMap type="student" id="studentResultMap">
            <!-- 
                id:查询结果的唯一标识
                不是id结果的映射
                column:查询出来的列名  
                property:type指定的实体类的属性名
             -->
            <id column="sid_" property="sid"/>
            <result column="name_" property="name"/>
            <result column="sex_" property="sex"/>
            <result column="hobbies_" property="hobbies"/>
        </resultMap>

        3.resultMap返回的结果是你配置的resultMap的Id

        resultMap总结:

          1. column:查询出来的是列名 ,不是数据库的字段名(只是在开发中程序猿通常会把属性名和字段名写成一样)

          2.就是映射时有一个或者多个属性对应上的时候:没对应的属性值显示为null,有对应到的就显示值

          

          3.当没有属性匹配到该对象的时候,就是映射没有成功,那么该对象不创建

        

  • 相关阅读:
    nginx添加location跳转后不生效
    UniApp微信小程序授权获取用户当前位置信息
    VS创建Core项目体验跨平台,部署在docker上运行(启用docker支持)
    在Unity中渲染一个黑洞
    一个简简单单的红点系统框架
    十一、Abp vNext 基础篇丨测试
    Abp vNext 番外篇-疑难杂症丨浅谈扩展属性与多用户设计
    十、Abp vNext 基础篇丨权限
    九、Abp vNext 基础篇丨评论聚合功能
    Abp vNext 番外篇-疑难杂症丨nginx反向代理-部署
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5795424.html
Copyright © 2020-2023  润新知