最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解mybatis多對一關聯(lián)查詢的方式

 更新時間:2021年06月02日 11:09:05   作者:tianzebeibei  
這篇文章主要給大家介紹了關于mybatis多對一關聯(lián)查詢的相關資料,文中將關聯(lián)方式以及配置方式介紹的很詳細,需要的朋友可以參考下

根據ID查詢學生信息,要求該學生的教師和班級信息一并查出

第一種關聯(lián)方式

1.修改實體類Student,追加關聯(lián)屬性,用于封裝關聯(lián)的數(shù)據

修改完以后重新生成get set方法還有toString方法

private Teacher teacher;
private Classes classes;

2.修改TeacherMapper相關配置

1.接口類 增加

Teacher selectTeacherById(Integer tid);


2.xml映射文件 增加

<sql id="params">tid,tname</sql>
<select id="selectTeacherById" resultType="Teacher">
    select
    <include refid="params"></include>
    from teacher where tid=#{tid}
</select>

3.修改ClassesMapper 相關配置

1.接口類 增加

Classes selectClassesById(Integer cid);

2.xml映射文件 增加

        <resultMap type="Classes" id="clsMap">
  <id property="cid" column="cid"></id>
  <result property="cname" column="cname"/>
 </resultMap>
 <select id="selectClassesById" resultMap="clsMap">
  select * from classes where cid = #{cid}
 </select>

4.修改StudentMapper 相關配置

1.接口類 增加

Student selectStudentById(Integer sid);

2.xml映射文件 增加

ps:

多對一關聯(lián)屬性配置:

        property:關聯(lián)對象名

        javaType:關聯(lián)對象類型

        select:引用的關聯(lián)查詢sql對應id名

        column:引用的關聯(lián)查詢sql語句需要的參數(shù)

        <resultMap type="Student" id="stuMap">
  <id property="sid" column="sid"/>
  <result property="sname" column="sname"/>
  <result property="age" column="age"/>
  <result property="email" column="email"/>
  <association property="teacher" select="com.yc.dao.TeacherMapper.selectTeacherById" column="tid" javaType="Teacher"></association>
  <association property="classes" select="com.yc.dao.ClassesMapper.selectClassesById" column="cid" javaType="Classes"></association>
 </resultMap>
        <select id="selectStudentById" resultMap="stuMap">
  select * from student where sid = #{sid}
 </select>

5.測試代碼

        @Test
 public void test1() {
  Student stu = studentMapper.selectStudentById(100001);
  System.out.println(stu);
 }

第二種配置方式

1.修改實體類Student,追加關聯(lián)屬性,用于封裝關聯(lián)的數(shù)據

跟前面一樣的

2.修改studentMapper.xml映射文件

ps:接口里面的方法還是跟原來一樣的

        <resultMap type="Student" id="stuMap">
  <id property="sid" column="sid" />
  <result property="sname" column="sname" />
  <result property="age" column="age" />
  <result property="email" column="email" />
  <association property="teacher" javaType="Teacher">
   <id property="tid" column="tid"></id>
   <result property="tname" column="tname" />
  </association>
  <association property="classes" javaType="Classes">
   <id property="cid" column="cid"></id>
   <result property="cname" column="cname" />
  </association>
 </resultMap>
 <select id="selectStudentById" resultMap="stuMap">
  select * from student s,teacher t,classes c
  where s.sid=#{sid} and s.tid = t.tid and s.cid=c.cid
 </select>

小結一下:個人感覺第二種方法是會簡單許多,只是說,因為查詢語句中,連接條件的限制,當cid或者tid為空時,查詢到的數(shù)據就會是null,而第一種的話,如果只是cid為空,至少還是會顯示student和teacher的相關信息

第三種配置方式 全局映射

ps:student類和studentmapper接口類不變

1.修改全局配置文件的setting信息

<setting name="autoMappingBehavior" value="FULL" />
<setting name="mapUnderscoreToCamelCase" value="true" />  

2. 修改studentMapper.xml映射文件

ps:

1.實體類的屬性名要和表字段名保存一致,或按照駝峰命名規(guī)則(屬性名:aColumn,字段名:A_COLUMN),settion屬性mapUnderscoreToCamelCase設置成true 

2.關聯(lián)表的字段名不能有相同的名字

        <resultMap type="Student" id="stuMap">
  <association property="teacher" javaType="Teacher" />
  <association property="classes" javaType="Classes" />
 </resultMap>
 <select id="selectStudentById" resultMap="stuMap">
  select * from student s,teacher t,classes c where s.sid = #{sid} and
  s.tid=t.tid
  and s.cid=c.cid
 </select>

還是連接查詢?yōu)榭盏膯栴}~

總結

到此這篇關于mybatis多對一關聯(lián)查詢的文章就介紹到這了,更多相關mybatis多對一關聯(lián)查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 超詳細解釋Java反射

    超詳細解釋Java反射

    本文非常詳細的講解了java反射具體的內容以及使用,java反射在現(xiàn)今的使用中很頻繁,希望此文可以幫大家解答疑惑,可以幫助大家理解
    2021-11-11
  • 一文帶你掌握Java8強大的StreamAPI

    一文帶你掌握Java8強大的StreamAPI

    Java8API添加了一個新的抽象稱為流Stream,可以讓你以一種聲明的方式處理數(shù)據。Stream 使用一種類似用SQL 語句從數(shù)據庫查詢數(shù)據的直觀方式來提供一種對 Java 集合運算和表達的高階抽象。Stream API可以極大提高Java程序員的生產力,讓程序員寫出高效率、干凈、簡潔的代碼
    2021-10-10
  • springboot集成nacos無法動態(tài)獲取nacos配置的問題

    springboot集成nacos無法動態(tài)獲取nacos配置的問題

    這篇文章主要介紹了springboot集成nacos無法動態(tài)獲取nacos配置的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Struts2相關的面試題整理分享

    Struts2相關的面試題整理分享

    這篇文章主要給大家總結整理了關于Struts2相關的面試題,文中先詳細介紹了關于struts2的工作原理、工作流程、攔截器和過濾器的區(qū)別以及什么要使用Struts2,然后分享了總結的一些關于Struts2面試的一些問題,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • Ajax登錄驗證實現(xiàn)代碼

    Ajax登錄驗證實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了jQuery+ajax實現(xiàn)用戶登錄驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java中的Unsafe在安全領域的使用總結和復現(xiàn)(實例詳解)

    Java中的Unsafe在安全領域的使用總結和復現(xiàn)(實例詳解)

    unsafe里面有很多好用的方法,比如allocateInstance可以直接創(chuàng)建實例對象,defineAnonymousClass可以創(chuàng)建一個VM匿名類(VM?Anonymous?Class),以及直接從內存級別修改對象的值。這篇文章主要介紹了Java中的Unsafe在安全領域的一些應用總結和復現(xiàn),需要的朋友可以參考下
    2022-03-03
  • SpringBoot加載靜態(tài)資源的方式

    SpringBoot加載靜態(tài)資源的方式

    本篇文章主要介紹了SpringBoot加載靜態(tài)資源的方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解Spring Boot 打包分離依賴JAR 和配置文件

    詳解Spring Boot 打包分離依賴JAR 和配置文件

    這篇文章主要介紹了Spring Boot 打包分離依賴JAR 和配置文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • java如何生成登錄隨機驗證碼

    java如何生成登錄隨機驗證碼

    這篇文章主要為大家詳細介紹了java如何生成登錄隨機驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Java 讀取網絡圖片存儲到本地并生成縮略圖

    Java 讀取網絡圖片存儲到本地并生成縮略圖

    用Java做開發(fā)經常需要處理圖片。本文就來看一下如何保存圖片到本地并生成縮略圖
    2021-05-05

最新評論

漳浦县| 育儿| 张家界市| 新营市| 乐亭县| 邓州市| 加查县| 怀宁县| 吴川市| 张家界市| 双江| 三台县| 靖州| 东方市| 长岛县| 南安市| 澄江县| 峨眉山市| 扎赉特旗| 平江县| 蓬莱市| 新巴尔虎右旗| 越西县| 婺源县| 房产| 双柏县| 安乡县| 青冈县| 汉阴县| 乌什县| 会宁县| 右玉县| 枣阳市| 梁河县| 本溪市| 吴堡县| 辉南县| 邢台县| 泸州市| 陇南市| 三明市|