mybatis一对多关联

 

这里的一对多指的是:当我们查询一个对象的时候,同时将其有关联的多方对象都查询出来。

 

下面以国家(Country)和部长(Minsiter)做案例 一个国家有多个部长

 

1.定义实体

 

定义实体的时候需要注意,若是双向关联,就是说双方的属性中都含有对方对象作为域属性出现,

 

那么在写toString()方法时需要注意,只让某一方输出即可,不要让双方的toString()都输出对方,

 

这样会形成递归调用,程序会出错,报堆栈溢出。

 

 

Country实体类

 

Minsiter 实体类

 

2.数据库设计

a) country数据库

 

b) minsiter数据库

 

3.DAO层设计

 

4.service层设计

 

5.impl实现类

 

6.Controller

 

7.最关键的是映射文件的配置,countryMapper.xml配置文件

 

这里值得注意的是:<resultMap>中即使result中的字段名和属性名相同,也必须写出他们的映射关系,因为框架是根据这个<resultMap>封装对象的。另外,在映射文件中使用<collection>标签体现两个实体间的关联关系,其两个属性的意义:

 

Property:指定关联属性。在本案例中就是set集合的名字。

 

ofType:集合属性的泛型类型,就是你配置的resultMapid的值。

posted @ 2017-01-06 16:31  々零♂度♂☆  阅读(205)  评论(0编辑  收藏  举报