处理多对一的映射关系
字段名和属性名不一致的情况,如何处理映射关系
sql语句:
select emp_id empId,emp_name empName,emp_age empAge ,emp_gender empGender from emp where emp_id=#{empid}
1.为查询的字段设置别名,和属性名保持一致
2.当字段符合sql的要求使用1_,而属性符合Java的要求使用驼峰
此时可以在mybatis的核心配置文件中设置一个全局配置,可以自动将下划线映射为驼峰
3.使用resultMap自定义映射处理
ResultMap:设置自定义的映射关系
id:唯一标识
type:处理映射关系的实体类的类型
常用的标签:
id:处理主键和实体类中属性的映射关系
association:处理多对一的映射关系(处理实体类类型的属性)
collection:处理一对多的映射关系(处理集合类型的属性)
result:处理普通字段和实体类中属性的映射关系
column:设置映射关系中的字段名,必须是sql查询出的某个字段
property:设置映射关系中的属性的属性名,必须是处理的实体类类型的属性名
处理多对一的映射关系
1.级联方式处理
2.association
association:处理多对一的映射关系(处理实体类类型的属性)
property:设置需要处理映射关系的属性的属性名
javatype:设置要处理属性的类型
3.分步查询
property:设置需要处理映射关系的属性的属性名
select:设置分步查询的sql的唯一标识
column:将查询出来的某个字段作为分步查询的sql条件
fetchType:在开启了延迟加载的环境中,通过该属性设置当前的分步查询是否使用延迟加载
fetchType=“eager”(立即加载)“lazy”(延迟加载)
处理一对多的映射关系: 1.collection
其中oftype:设置集合类型的属性中存储的数据的类型
2.分步查询