<selectid="getStu"resultType="Stu">
select * from stu WHERE gid=#{id}
</select>
1.5 测试方法
@Testpublicvoidt2(){SqlSessionFactory sf =SqlSessionFactoryUtil.sf();SqlSession sqlSession = sf.openSession();OneToMany mapper = sqlSession.getMapper(OneToMany.class);Grade g = mapper.findById(101);System.out.println(g.getGname());System.out.println("---------");List<Stu> stus = g.getStus();
stus.forEach(System.out::println);
sqlSession.close();}
1.6 测试的结果
1.7 总结
a 一对多就是一个表的实体类存在一个集合属性,其集合属性的数据来源是另外一个表的(通过某一字段进行关联)
如班级表和学生表,一个班级有多个学生,意味着班级表应该存在学生对象的集合属性
b select标签中resultMap属性值必须和resultMap标签id值一致
c resultMap标签中的type值是取决于最终所查的类型是什么
d 一对多查询使用的是collection标签,其中有四大属性需要配置,第一个property指的是对象属性名,第二个column指的是连接的字段
第三个select指的是查询的语句,第四个fetch指的是是否延时加载 eager指的是及时加载 lazy指的是懒加载
lazy指的是用的时候再去加载,eager不管需不需要,都会查询完所有字段的