mybatis-懒加载

在这里插入图片描述
在这里插入图片描述

测试类

public class Demo01 {
    SqlSession session;
    @Before
    public void before() throws IOException {
        System.out.println("before....获取session");
        //读取配置文件
        InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
        //通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //通过SqlSessionFactory创建SqlSession
        session = sessionFactory.openSession();
    }

    @After
    public void after(){
        session.close();
    }

    //懒加载
    @Test
    public void test10() throws IOException {
        OrderMapper mapper = session.getMapper(OrderMapper.class);
        List<Orders> list = mapper.findOrderAndUserByLazyloading();
        for(Orders order : list){
            System.out.println("订单信息:");
            System.out.println(order);
            System.out.println("订单所属的客户:");
            System.out.println(order.getUser());
        }
    }
}

mapper类:

public interface OrderMapper {
    //懒加载订单的用户数据
    public List<Orders> findOrderAndUserByLazyloading();
}

xml配置:

 <!--  ============= 懒加载 ==================-->
    <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>

SqlMapConfig.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>-->
        <!--指定包名,别名就是类名,第一个字母小写-->
        <package name="com.gyf.model"/>
        <package name="com.gyf.vo"/>
    </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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值