ElvElevatorsDto:提供分页查询参数拓展的实体
public class ElvElevatorsDto extends ElvElevators {
private int pageNum = 1;
private int pageSize = 10;
//此处声明一个parameterCode是为了后面select标签里面t2表能获取到parameterCode
private String parameterCode;
//省略get和set
}
ElvElevatorsExt:用于返回头行查询结果的实体
public class ElvElevatorsExt extends ElvElevators {
//行表集合
private List<ElvElevatorParameters> parametersList;
//行表中的code属性(为了在collection标签中的column也传入parameterCode)
private String parameterCode;
//省略get和set
}
ElvElevatorsExtMapper.xml:完成映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yun.managers.extmapper.emp.ElvElevatorsExtMapper">
<resultMap id="headerExtMap" type="com.yun.managers.extmapper.emp.extentity.ElvElevatorsExt">
<result column="ELEVATOR_ID" jdbcType="DECIMAL" property="elevatorId" />
<result column="ELEVATOR_NO" jdbcType="VARCHAR" property="elevatorNo" />
<result column="ELEVATOR_SEQ" jdbcType="VARCHAR" property="elevatorSeq" />
<result column="EQUIPMENT_CODE" jdbcType="VARCHAR" property="equipmentCode" />
<result column="ELEVATOR_CLASS_CODE" jdbcType="VARCHAR" property="elevatorClassCode" />
<result column="ELEVATOR_CLASS_DESC" jdbcType="VARCHAR" property="elevatorClassDesc" />
<result column="ELEVATOR_TYPE_CODE" jdbcType="VARCHAR" property="elevatorTypeCode" />
<result column="ELEVATOR_TYPE_DESC" jdbcType="VARCHAR" property="elevatorTypeDesc" />
<result column="ELEVATOR_TYPE_SEQ_CODE" jdbcType="VARCHAR" property="elevatorTypeSeqCode" />
<!- parameterCode为拓展的属性字段(elv_elevator_parameters表对应的字段)->
<result column="PARAMETER_CODE" jdbcType="VARCHAR" property="parameterCode" />
<!- 此处column多个参数使用{}将参数包起来->
<collection property="parametersList" column="{elevatorId=ELEVATOR_ID,parameterCode=PARAMETER_CODE}" select="selectElvParamByElvId" javaType="ArrayList" ></collection>
</resultMap>
<resultMap id="elvParamMap" type="com.yun.managers.mapper.emp.entity.ElvElevatorParameters">
<result column="ELEVATOR_PARAMETER_ID" jdbcType="BIGINT" property="elevatorParameterId" />
<result column="ELEVATOR_ID" jdbcType="BIGINT" property="elevatorId" />
<result column="PARAMETER_CODE" jdbcType="VARCHAR" property="parameterCode" />
<result column="PARAMETER_VALUE" jdbcType="VARCHAR" property="parameterValue" />
<result column="PARAMETER_VALUE_STR" jdbcType="VARCHAR" property="parameterValueStr" />
<result column="PARAMETER_VALUE_NUM" jdbcType="BIGINT" property="parameterValueNum" />
<result column="PARAMETER_VALUE_DATE" jdbcType="TIMESTAMP" property="parameterValueDate" />
</resultMap>
<select id="findElvElevatorsList"
parameterType="com.yun.managers.dto.emp.ElvElevatorsDto"
resultMap="headerExtMap">
select t1.*,t2.PARAMETER_CODE from elv_elevators t1,elv_elevator_parameters t2
where t1.ELEVATOR_ID = t2.ELEVATOR_ID
<if test="elevatorNo !=null">
and t1.ELEVATOR_NO = #{elevatorNo,jdbcType=VARCHAR}
</if>
<if test="parameterCode !=null">
and t2.PARAMETER_CODE =#{parameterCode,jdbcType=VARCHAR}
</if>
ORDER BY t1.CREATION_DATE desc
</select>
<!- 此处parameterType使用java.util.Map来接收多个参数->
<select id="selectElvParamByElvId" parameterType="java.util.Map" resultMap="elvParamMap">
select * from elv_elevator_parameters where ELEVATOR_ID=#{elevatorId} and PARAMETER_CODE =#{parameterCode} order by CREATION_DATE desc
</select>
</mapper>
ElvElevatorsExtMapper :提供查询方法的接口
@Repository
public interface ElvElevatorsExtMapper {
//方法名与mapper中的select标签的id一致
List<ElvElevatorsExt> findElvElevatorsList(ElvElevatorsDto elvElevators);
}
这里原本的ElvElevators和ElvElevatorParameters两个实体就不再粘出来,从mapper文件中可知类中的属性有哪些