Mybatis select记录封装的实现

这篇文章主要介绍了Mybatis select记录封装的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

select记录封装

返回一个List集合, resultType要写集合中元素的类型

select * from tbl_employee where last_name like #{lastName}

返回一条记录的map, key为列名, 值就是对应的值

select * from tbl_employee where id=#{id}

多条记录封装成一个map, key为id, 值是记录封装后的javaBean

//@MapKey:告诉mybatis封装这个map的时候使用哪个属性作为map的key @MapKey("lastName") public Map getEmpByLastNameLikeReturnMap(String lastName);

select * from tbl_employee where last_name like #{lastName}

自动映射配置

全局setting设置

1.autoMappingBehavior认为PARTIAL, 开启自动映射功能;唯一的要求是列名和javaBean属性名一致

2.mapUnderscoreToCamelCase=true, 开启自动驼峰命名规范映射功能

自定义resultMap, 实现高级映射功能

resultMap自定义映射规则

创建表

create table tb_dept ( id int(11) primary key auto_increment, dept_name varchar(255) )

添加

alter table tb_emp add column d_id int(11);

添加约束

alter table tb_emp add constraint fk_emp_dept foreign key(d_id) references tb_dept(id);

联合查询:级联属性封装结果集

场景一:

查询Employee的同时查询员工对应的部门;一个员工有与之对应的部门信息;

使用association定义关联的单个对象的封装规则;

association分步查询

select id,dept_name departmentName from tbl_dept where id=#{id}

association分步查询&延迟加载

Dept: 我们每次查询Employee对象的时候,都将一起查询出来。 部门信息在我们使用的时候再去查询; 分段查询的基础之上加上两个配置: -->

关联集合

嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则

场景二:

查询部门的时候将部门对应的所有员工信息也查询出来:注释在DepartmentMapper.xml中

SELECT d.id did,d.dept_name dept_name, e.id eid,e.last_name last_name,e.email email,e.gender gender FROM tbl_dept d LEFT JOIN tbl_employee e ON d.id=e.d_id WHERE d.id=#{id}

collection:分段查询

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...