天天看點

多表聯合查詢_一對多多表聯合查詢Ⅵ。一對多多表聯合查詢

Ⅵ。一對多多表聯合查詢

一對多多表聯合查詢,我們将延用一對一多表聯合查詢的模式,通過一個小例子來說明。
我們先來想一下生活中一對多的場景,比如一個班級和多個學生,一個部門和多個職員等等。
這裡我們就班級和學生來說:
兩個需求:1.給定班級号,查詢班級記錄和它的學生資訊;2.給定學生号查詢學生記錄和它對應的班級資訊。
希望大家仔細閱讀代碼的注釋,同時需要注意的是,這裡的大部分内容,我認為你是已經掌握了一定的 MyBatis/Java知識的 。如果沒有,建議先看一下前面專題的文章,然後來看這裡的文章你就會輕松很多。

項目目錄:

多表聯合查詢_一對多多表聯合查詢Ⅵ。一對多多表聯合查詢

這裡隻給出,給定班級号,查詢班級記錄和它的學生資訊的ClassMapper.xml檔案内容:

mybatis-config.xml已經是我們的老朋友了,這裡就不做過多的解釋了,直接純粹的代碼了。

mybatis-config.xml
<?xml  version="1.0" encoding="UTF-8" ?><configuration>    <settings>        <setting name="logImpl" value="LOG4J"/>        <setting name="lazyLoadingEnabled" value="true"/>        <setting name="aggressiveLazyLoading" value="false"/>        <setting name="lazyLoadTriggerMethods" value="clone"/>    settings>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC">transactionManager>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://localhost:3306/jdbc?serverTimezone=CST"/>                <property name="username" value="root"/>                <property name="password" value="beauty"/>            dataSource>        environment>    environments>    <mappers>        <mapper resource="mapper/ClassMapper.xml">mapper>    mappers>configuration>
           
ClassMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>                                            select tid,tname from student where cname = #{cname}                                                                                               select cname,cloc from class where cname = #{cname}                    select distinct * from  class c,student s where c.cname = s.cname and c.cname = #{cname};    >
           

剩下的内容希望大家當作練習完成了。

百看不如一練,代碼生活,要勤于動手。

<歡迎大家指正錯誤,完善細節>