<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tfjy.sda.mapper.CourseMapper">
<resultMap id="TopicList" type="com.tfjy.sda.bean.TopicReply" autoMapping="true">
<id property="id" column="id"></id>
</resultMap>
<select id="queryCourse" resultType="com.tfjy.sda.bean.CourseUsers">
SELECT
cu.stu_number
FROM
course_users cu
WHERE
stu_name=#{courseUsers.stuName} AND course_id=#{courseUsers.courseId}
</select>
</mapper>
resultMap
**resultType的主要作用是將查詢結果封裝到pojo中。(前提是pojo類中的
屬性名和查詢到的數據庫的字段名保持一致);
如果sql查詢到的字段與pojo的屬性名不一致,則需要使用resultMap將字段名和屬性名對應起來,進行手動配置封裝,將結果映射到pojo中。
使用下列語句進行結果的映射:
<id property="id" column="id"></id>
<id property="iu" column="iu"></id>
<id property="ic" column="ic"></id>
pojo:
代表簡單無規則java對象
關於pojo詳情請查看鏈接:
https://www.jianshu.com/p/b934b0d72602
autoMapping
主要功能是完成結果集的映射,在映射是會將resultMapping中的字段按照名稱相同的方式映射到返回類型的對應屬性上,在映射時會自動忽略大小寫。比如查詢出的字段是Student但是返回類型中有一個屬性是student,並且有一個setstudent的方法,這樣是可以匹配成功的,能夠自動完成映射,將返回的值映射給對應的返回類型中的Id。
autoMapping 共有兩個屬性 true和false.true表示能夠自動映射,false則不會自動映射。
拓展
也可以通過第二種方式完成映射
resultType
<select id="queryUser" resultType="com.tfjy.sda.bean.CourseUsers">
SELECT
cu.stu_number
FROM
course_users cu
WHERE
stu_name=#{courseUsers.stuName} AND course_id=#{courseUsers.courseId}
</select>
當我們指定一個查詢語句的返回結果是,可以直接指定result Type 也可以指定result Map,實際上mybatis對結果集進行處理時都是通過的resultMap處理,當指定resultType時mybatis會自動生成一個空的resultMap,然後指定其對應的type爲我們指定的resultType類型。
Mybatis的自動映射策略默認是開啓的,而且默認是隻對非嵌套的resultMap進行自動映射。這是通過Mybatis的全局配置autoMappingBehavior參數配置的。它一共有三種取值,分別是NONE、PARTIAL和FULL。
l NONE表示不啓用自動映射
l PARTIAL表示只對非嵌套的resultMap進行自動映射
l FULL表示對所有的resultMap都進行自動映射