mybatis 换一种格式完成一对一关联单表查询

上次我们查询的是类,这次我们试试查询list。

联动:

mybatis 完成一对一关联单表查询

其实上次的方法是有大问题的。

因为限制了id为绝对单一,所以通过id去查找数据无论如何都只能查到一个实体类的数据。但是,如果存在多个匹配结果,因为单个实体类无法映射多个返回,就会报错。

为了解决这个问题,需要使用list去承载多个返回的实体类结果。

一、代码实现

(1)首先写好class的实体类Class2

主要改动就是private List<Teacher> teachers,从单一实体类换成了list。

(2)配置sql映射文件ClassMapper2.xml

注意:teachers这个字段从association换成了collection。

(3)在mybatis配置文件conf.xml中注册sql配置文件ClassMapper2.xml

一样的注册,没有什么不同。

(4)写一个测试方法

运行结果:

成功输出了class中id为1的teacher的数据。

(5)分析

这次只做了一点小改动,但是意义有很大不同。

如果class的实体类中嵌入的是teacher的实体类,那么查询结果只能有1个,如果存在多个返回值,就报错。所以,如果存在多个查询结果,就需要一个list来装载查询结果。

所以改成了一个List<Teacher>,这样就允许返回多个结果了。

二、总结

如果有多个返回结果,就可以这么写。

发表评论

电子邮件地址不会被公开。 必填项已用*标注