Mybatis select记录封装的实现
select记录封装
返回一个List集合,resultType要写集合中元素的类型
select*fromtbl_employeewherelast_namelike#{lastName}
返回一条记录的map,key为列名,值就是对应的值
select*fromtbl_employeewhereid=#{id}
多条记录封装成一个map,key为id,值是记录封装后的javaBean
//@MapKey:告诉mybatis封装这个map的时候使用哪个属性作为map的key @MapKey("lastName") publicMapgetEmpByLastNameLikeReturnMap(StringlastName);
select*fromtbl_employeewherelast_namelike#{lastName}
自动映射配置
全局setting设置
1.autoMappingBehavior默认为PARTIAL,开启自动映射功能;唯一的要求是列名和javaBean属性名一致
2.mapUnderscoreToCamelCase=true,开启自动驼峰命名规范映射功能
自定义resultMap,实现高级映射功能
resultMap自定义映射规则
创建表
createtabletb_dept( idint(11)primarykeyauto_increment, dept_namevarchar(255) )
添加列
altertabletb_empaddcolumnd_idint(11);
添加约束
altertabletb_empaddconstraintfk_emp_deptforeignkey(d_id)referencestb_dept(id);
联合查询:级联属性封装结果集
场景一:
查询Employee的同时查询员工对应的部门;一个员工有与之对应的部门信息;
使用association定义关联的单个对象的封装规则;
association分步查询
selectid,dept_namedepartmentNamefromtbl_deptwhereid=#{id}
association分步查询&延迟加载
关联集合
嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则
场景二:
查询部门的时候将部门对应的所有员工信息也查询出来:注释在DepartmentMapper.xml中
SELECTd.iddid,d.dept_namedept_name, e.ideid,e.last_namelast_name,e.emailemail,e.gendergender FROMtbl_deptd LEFTJOINtbl_employeee ONd.id=e.d_id WHEREd.id=#{id}
collection:分段查询
到此这篇关于Mybatisselect记录封装的实现的文章就介绍到这了,更多相关Mybatisselect封装内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!