• (第7天)mybatis分步查询与延迟加载


    什么是分布查询和延迟加载技术;怎么实现分步查询?什么是延迟加载 ?为什么要用延迟加载?以及有哪些好处?

    怎么实现

    分布查询+延迟加载
    1.首先查询当前当前商品,得到产地id
    2.通过产地id查询出产地国家信息
    3.将查询到的产地国家信息封装到商品对象中


    现在看下我的数据表,我做了点增加

    **数据库goods表,增加了一个类型--nation_id **

    数据库表nation表

    整体思路是:通过ID查询goods的一行信息,拿到这行信息里的nation_id(产地id) 后,通过这个nation_id (产地id) 查到nation表 里的 相应产地名称

    老套路第1步
    /Mybatis02/src/com/chen/dao/GoodsDao2.java

    //分步查询方法(因为根据id查的,肯定只出一条数据,所以用类,而不用List)
    	public GoodsInfo selectStep(String id);
    

    老套路第2步
    /Mybatis02/config/mappers/GoodsInfoMapper.xml

      <!-- 
      		分布查询+延迟加载
      		1.首先查询当前当前商品,得到商品id
      		2.通过商品id查询出产地国家信息
      		3.将查询到的产地国家信息封装到商品对象中
       -->
      <select id ="selectStep" resultMap="dog">
         <!-- 第一步先把SQL写出来,根据id查 产地id -->
      	select * from goods where id = #{id}
      </select>
      
      <resultMap type="com.chen.GoodsInfo" id="dog">
      		<!-- 下面id表示配置主键的封装格式 
      			 column对应的是上面SQL语句查询后所显示的列名-->
      		<id column="id" property="e_id"/>
      		<result column="name" property="e_name"/>
      		<!-- 想要完成分布查询还要使用association
      		     下面property对应的是关联的类对象名称 
      		   然后紧跟其后的是select,而不是上章的JavaType
      		   由于产地信息是通过产地id查出来的-->
      		<association property="nati" select="">
      		
      		</association>
      		
      </resultMap>
    

    以上暂时还未写完整的,暂时先写到 select=" " 。在这个select的属性里边,意思是 指定通过谁来查询 产地

    那么这个select属性里面该填什么呢

    新建一个接口类,命名为NationDao


    相应的,也新增一个表映射XML文件,命名为NationMapper.XML

    别忘了,把刚新增的表映射XML文件加进 总的配置文件里

    回到上面那个select属性问题里,答案是通过NationMapper.XML里面的

  • 相关阅读:
    sqlserver临时表或表变量代替游标
    Server嵌套事务处理的方法
    数据库一对一,一对多,多对多关系
    VS NuGet离线包(缓存包)nupkg安装
    搭建属于自己的NuGet服务器
    SQL Server Management Studio(SSMS)的使用与配置整理
    原来以为京东售后很好,现在才知道 京东售后就是个垃圾!
    [asp.net]C#实现json的序列化和反序列化
    ASP.NET中JSON的序列化和反序列化
    Javascript中判断变量是数组还是对象(array还是object)
  • 原文地址:https://www.cnblogs.com/czy16/p/7635177.html
Copyright © 2020-2023  润新知