MyBatis基础进阶篇

实际的开发中,往往我们需要多表联查获取数据,以下给出一个例子:

场景描述:

获取学生信息,包括学生姓名,课程名,任课老师姓名。

场景分析:

学生实体中包含课程集合,课程实体中包含老师id,通过学生-课程关系表将各个结果集串联起来,从而可以获取所需信息。

场景实现:

掌握MyBatis的基础使用后,此处的难点、不同点就主要集中在mapper.xml中了。下面给出映射关系图(略显凌乱,凑合看哈):
MyBatis基础进阶篇
图中红线相连部分即使名称应该对应的部分,有几处要特别说明:

  1. Student的id、名称获取方式是利用constructor标签,这里要与实体类中定义的构造器相匹配,column对应的是sql查询出的字段名,javaType对应构造器定义的类型,需要额外指出的是int类型需要转变成Integer,否则会提示NoSuchMethodException异常
  2. Course类、Teacher类必须包含无参构造器,否则将无法赋值,提示NoSuchMethodException异常
  3. collection标签获取course集合信息,association标签用来处理关联关系,每一个属性的使用这里不多做赘述,更多属性使用细节可参考W3Cschool提供的教程:W3Cschool MyBatis教程