zoukankan      html  css  js  c++  java
  • 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.当没有属性匹配到该对象的时候,就是映射没有成功,那么该对象不创建

        

  • 相关阅读:
    分析ARP攻击与欺骗
    IP数据包结构
    OSI 7层模型
    PKI
    求一个字符串所有的子序列:非递归和递归算法
    空当接龙求解:java版广度优先
    mysql 解决奇葩问题续篇。
    mysql 的一个奇葩问题
    symfony 之 admin 征途二 数据库相关
    symfony 之 admin 征途一 试运行
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5795424.html
Copyright © 2011-2022 走看看