mybatis_resultMap(3)

学习最后一种封装方式 --association标签

association标签

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

//association 标签来制定关联的 JavaBean的封装方式
	public List<GoodsInfo> selectAll4();

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

<select id="selectAll4" resultMap="love">
  	select g.id id,g.name name ,n.goods_id goods_id , n.from   from goods g,nation n WHERE g.id = n.goods_id
  </select>
  
  <resultMap type="com.chen.GoodsInfo" id="love">
  	<!-- 下面这个id标签表示配置主键的封装格式 -->
  	<!-- 记住,下面column的属性一定写的是上面SQL查询语句的别名。别名。别名 -->
  	<id column="id" property="e_id" />
  	<result column="name" property="e_name" />
  	<!-- 下面的association标签中的property属性对应的你要配置的 实力类的对象名称
  	   (还记得在GoodsInfo类里声明了个private Nation nati吗)
  	     然后下面javaType对应的是对象nati它所指定的类名。(既Nation类)-->
  	<association property="nati" javaType="com.chen.Nation">
  		<!-- 现在开始指定里面数据的封装方式 
  		注:下面column的是查询语句的别名,properyt是Nation类里的字段名。刚好起的一样而已-->
  		<result column="goods_id" property="goods_id"/>
  		<result column="from" property="from"/>
  	</association>
  
  </resultMap>
  

老套路第3步
/Mybatis02/src/test/Start2.java


public class Start2 {

	public static void main(String[] args) throws IOException {
		
		String resource = "mybatis-conf.xml";
		InputStream  inputStream = Resources.getResourceAsStream(resource);
		//创建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//true表示自动提交。否则需要使用commit方法才会提交。默认是false
		SqlSession session = sqlSessionFactory.openSession();
		
		//拿到接口的代理对象
		GoodsDao2 dao=session.getMapper(GoodsDao2.class);
		List<GoodsInfo> list = dao.selectAll4();
		System.out.println(list);
		
		//如果上面不设置自动提交表单,那么就需要commit方法
		session.commit();
	}

}

点击运行

[GoodsInfo [e_id=1, e_name=大米面膜, nati=Nation [goods_id=1, from=香港]], GoodsInfo [e_id=2, e_name=泰国纳兰足贴, nati=Nation [goods_id=2, from=日本]], GoodsInfo [e_id=3, e_name=Mellin菊花晶, nati=Nation [goods_id=3, from=泰>
国]]]

证明这个associion标签也能完成数据封装 。。。 成功

感觉这个和上篇文章的内容那种数据封装 差不多一样。 感觉这个association标签好像还麻烦点。

那么问题来了:这个association标签有哪些好处?

答案是:association标签能够进行分布查询

请听下回分解

原文地址:https://www.cnblogs.com/czy16/p/7634439.html