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

怎么实现

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


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

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

**数据库goods表,增加了一个类型--nation_id **
(第7天)mybatis分步查询与延迟加载

数据库表nation表

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

整体思路是:通过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表示配置主键的封装格式 
  			 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属性里面该填什么呢

新建一个接口类,命名为NationDao
(第7天)mybatis分步查询与延迟加载


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

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

别忘了,把刚新增的表映射XML文件加进 总的配置文件里
(第7天)mybatis分步查询与延迟加载

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

相关文章:

  • 2021-07-24
  • 2021-08-29
  • 2021-12-23
  • 2021-09-13
  • 2021-12-19
  • 2021-05-06
猜你喜欢
  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2021-08-09
  • 2021-06-13
  • 2022-01-23
  • 2021-11-21
相关资源
相似解决方案