mybatis 结果集collection映射原理
时间: 2023-08-13 14:05:14 浏览: 101
MyBatis的结果集映射功能可以将一条SQL语句返回的结果集映射成一个Java对象,或者将多条结果集映射成多个Java对象。
其中,集合的映射功能是通过`collection`标签来实现的。`collection`标签可以用来映射一对多或者多对多的关联关系。在映射结果集集合的时候,MyBatis会首先调用`java.util.Collection`接口对应的类的实例化方法,然后再将映射结果集中的每一行数据映射成一个Java对象,并添加到集合中。
具体来说,MyBatis的`collection`标签有以下属性:
- property:指定集合属性的名称。
- ofType:指定集合中元素的类型。
- resultMap:指定映射该集合元素的结果映射。
- select:指定查询该集合元素的SQL语句。
- column:指定连接主查询语句和子查询语句时的连接字段。
在使用`collection`标签映射集合的时候,需要注意以下几点:
- 集合属性必须是一个Java集合类型,例如List、Set等。
- ofType属性必须指定集合元素的类型。
- select属性指定查询该集合元素的SQL语句时,可以使用`$`符号来引用主查询语句中的参数。例如:`select * from order_detail where order_id = #{id}`。
- column属性指定连接主查询语句和子查询语句时的连接字段时,可以使用`$`符号来引用主查询语句中的参数。例如:`select * from order_detail where order_id = ${id}`。
阅读全文