天天看点

多表联合查询_一对多多表联合查询Ⅵ。一对多多表联合查询

Ⅵ。一对多多表联合查询

一对多多表联合查询,我们将延用一对一多表联合查询的模式,通过一个小例子来说明。
我们先来想一下生活中一对多的场景,比如一个班级和多个学生,一个部门和多个职员等等。
这里我们就班级和学生来说:
两个需求: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};    >
           

剩下的内容希望大家当作练习完成了。

百看不如一练,代码生活,要勤于动手。

<欢迎大家指正错误,完善细节>