【mybatis 】懒加载配置 技能 get

参考资料:https://blog.csdn.net/tototuzuoquan/article/details/42915891

需求查订单信息和对应的用户信息。

第一步:xml的懒加载要求的写法,我们先写order的sql,因为是模型里面有模型,所以用association标签,association标签里直接写查询user信息的findUserById方法,那么需要提供的Id参数(column)就在order的resultMap里找就行了。

 

 <!--  ============= 懒加载 ==================-->
    <resultMap id="orderLazyloadingRslMap" type="orders">
        <id column="id" property="id"/>
        <result column="note" property="note"/>
        <result column="number" property="number"/>
        <result column="createtime" property="createtime"/>

        <!--配置查询-->
        <association property="user" select="com.gyf.mapper.UserMapper.findUserById" column="user_id"/>
    </resultMap>
    <select id="findOrderAndUserByLazyloading" resultMap="orderLazyloadingRslMap">
        SELECT * FROM orders
    </select>

 

第二步:mybatis默认是关闭懒加载的,需要我们在配置文件开启下。

<!--配置允许懒加载-->
    <settings>
        <setting name="lazyLoadingEnabled" value="true"/>
    </settings>

 

 

贴心 ~ 附完整配置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>

    <properties resource="db.properties"/>

    <!--配置允许懒加载-->
    <settings>
        <setting name="lazyLoadingEnabled" value="true"/>
    </settings>
    <!--配置别名-->
    <typeAliases>
        <!--<typeAlias type="com.gyf.model.User" alias="user"></typeAlias>-->

        <!--指定包名,别名就是类名,第一个小写 User 别名就是user-->
        <package name="com.gyf.model"></package>
        <package name="com.gyf.vo"></package>
    </typeAliases>

    <!-- 配置mybatis的环境信息 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事务控制,由mybatis进行管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源,采用dbcp连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driverClass}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${name}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--告诉mybatis加载映射文件-->
    <mappers>
        <!--<mapper resource="com/gyf/sqlmap/User.xml"></mapper>-->

        <!--第一种:写映射文件的名字-->
        <!--<mapper resource="com/gyf/mapper/UserMapper.xml"></mapper>-->

        <!--第二种:写类名,一定要有个映射文件与之对应
        如果没有,那么在UserMapper要声明注解-->
        <!--<mapper class="com.gyf.mapper.UserMapper"></mapper>-->

        <!--第三种:可以写包名-->
        <package name="com.gyf.mapper"></package>

    </mappers>
</configuration>

 

posted @ 2019-10-06 03:15  expworld  阅读(193)  评论(0)    收藏  举报