一文搞定Mybatis 一对多延迟加载,并且子查询中与主表字段不对应

Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明。实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号不一致。1、工程资源配置文件1)、本应用实际应用到了(开启延迟加载配置、关闭立即加载配置);2) 、外关联查询语句对应xml文件 :3)、主查询xml文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration
摘要由CSDN通过智能技术生成

Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明。

实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号不一致。

1、工程资源配置文件

1)、本应用实际应用到了(开启延迟加载配置、关闭立即加载配置);

2) 、外关联查询语句对应xml文件 :

3)、主查询xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!-- 开启日志,并制定使用的具体日志,LOG4J 对应 log4j.properties的文件名 -->
        <setting name="logImpl" value="LOG4J"/>
        <!-- 开启延迟加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- g关闭立即加载 -->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>
    <!-- 转换器 -->
    <typeHandlers>
        <!-- 把java类的boolean类型转换数据 int,数据库int转换为java类的boolean类型 -->
        <typeHandler handler="com.mybatis03.util.BooleanAndIntConverter" javaType="Boolean" jdbcType="INTEGER"/>
    </typeHandlers>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis01"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- 加载映射文件 -->
        <mapper resource="com/mybatis03/mapper/personMapper.xml"/>
        <mapper resource="com/mybatis03/mapper/TeacherMapper.xml"/>
        <mapper resource="com/mybatis03/mapper/teacherCourseMapper.xml"/>
        <!-- 外关联查询语句对应xml文件 -->
        <mapper resource="com/mybatis03/mapper/teacherGroupToTeacherMapper.xml"/>
    </mappers>
</configuration>

2、mapper文件

2.1 教师.xml 文件

<?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.mybatis03.mapper.TeacherMapper">
    <!-- 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联  -->
    <select id="queryWithLazyGroupAndTeachers"  parameterType="int" resultMap="lazyGroupTeacherMap">
        SELECT g.*,g.groupID AS groupno FROM teachergroup g
        WHERE g.groupid =#{
   groupid}
    </select>
    <!--类和表对应关系 (一对多都用collection,一对一用 association) -->
    <resultMap id="lazyGroupTeacherMap" type="com.mybatis03.bean.TeacherGroup">
        <!-- 因为type主类是TeacherGroup,所以先配置 TeacherGroup类属性对应关系 -->
        <id property="groupID" column="groupid" />
        <result property="groupName" column="groupname"/>
        <!-- 配置成员属性教师 ,一对多;属性类型:javaType,属性元素类型 ofType-->
        <!--property 中的属性为实体类中的属性,column对应数据库中的字段 -->
        <collection property="teacherList"<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值