1、多对一查询
1 准备工作
(1)数据表准备
这里以员工表和部门表举例,多个员工对应一个部门,通过员工查部门。
在多的一方建立外键,来存储部门id号(无需在navicat中设置外键,会影响查询效率)
(2)项目层级结构:
(3)实体类准备
2 额外查询
额外sql的查询方式,通过association标签获取到另一个sql语句查询回来的单个结果
-
property:注入给员工对象中的那个个属性(实体类中的属性名) select:发送那一条SQL语句(statement) javaType:把SQl语句查询出的结果集封装成哪个类的对象(可以省略) column:查询员工的结果集中,那个列的值作为条件去查询关联的对象(数据库中的字段名)*
(1)在员工表对应的mapper映射文件中,写入代码:
<resultMap id="selectMap1" type="com.ujy.many2one.bean.Employee">
<id property="id" column="emp_id"/>
<result property="name" column="emp_name"/>
<result property="dep_id.id" column="dep_id"/>
<!--额外sql的查询方式,通过association标签获取到另一个sql语句查询回来的结果
association:处理单一的关联对象
property:注入给员工对象中的那个个属性(实体类中的属性名)
select:发送那一条SQL语句(statement)
javaType:把SQl语句查询出的结果集封装成哪个类的对象(可以省略)
column:查询员工的结果集中,那个列的值作为条件去查询关联的对象(数据库中的字段名)
-->
<assoc