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

    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM