主页 > 网络编程 > MyBatis高级关联映射

MyBatis高级关联映射

之前已经完成了MyBatis的增删改查,现在我们来处理一个问题,如果再JavaBean中有一个映射属性是个复杂类型比如在User用户表中,有一个Role角色属性。我们该如何处理,为了解决这个问题,我们做如下练习:

先准备一个数据表

完成改表映射的JavaBean的创建,完成对应的get和set方法

然后我们修改User类,增加角色属性(Role role),并增加相应的get和set方法。这样我们就在User对象中嵌套了一个复杂的数据类型对象

接下来,我们在userDao接口里增加根据角色id获取用户列表的方法

继续修改userMapper.xml中的内容,增加对应的方法,该查询语句外部引入的resultMap类型为User,我们使用association来实现结果映射

我们编写测试方法

我们准备编号为2的数据

然后我们执行测试方法

那么我们可以认为userRoleResult联合一个association的结果映射来加载一个User实例,那么association的role结果映射也可以复用

我们修改UserMapper.xml

我们重新来运行我们的测试代码,查看结果

结果是一样的

之前已经完成了MyBatis的一对一关联属性,现在我们练习一个collection元素,相对于association元素,它的作用是处理一个集合列表,我们做如下练习:

先准备一个数据表

完成改表映射的JavaBean的创建,完成对应的get和set方法

然后我们修改User类,增加地址列表属性(List

addressList),并增加相应的get和set方法。这样我们就在User对象中嵌套了一个复杂的数据类型对象

接下来,我们在userDao接口里增加根据角色id获取地址列表的方法

继续修改userMapper.xml中的内容,增加对应的方法,该查询语句外部引入的resultMap类型为User,我们使用collection来实现结果映射

我们编写测试方法

我们准备编号为1的数据

然后我们执行测试方法

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!