非常详细的配置说明
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
class Infrared {
private int freq;
private byte[] data;
}
public class Test {
private int id;
private String name;
private Infrared infrared0;
private Infrared infrared1;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Infrared getInfrared0() {
return infrared0;
}
public void setInfrared0(Infrared infrared0) {
this.infrared0 = infrared0;
}
public Infrared getInfrared1() {
return infrared1;
}
public void setInfrared1(Infrared infrared1) {
this.infrared1 = infrared1;
}
}
sql查询结果集如下:
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.charlie.mapper.TestMapper">
<resultMap id="infraredResult" type="com.charlie.entity.Infrared">
<result property="freq" column="freq"/>
<result property="data" column="data"/>
</resultMap>
<resultMap id="remoteResult" type="com.charlie.entity.Test">
<id property="id" column="id" />
<result property="name" column="name"/>
<association property="infrared0"
resultMap="infraredResult"
columnPrefix="0_" />
<association property="infrared1"
resultMap="infraredResult"
columnPrefix="1_" />
</resultMap>
<select id="getRemoteKey" resultMap="remoteResult">
SELECT b.id,a.`name`,b.freq as 0_freq,b.`data` as 0_data,c.freq as 1_freq,c.`data` as 1_data from infrared_tv_oth_key a LEFT OUTER JOIN infrared b ON a.infrared0=b.id LEFT OUTER JOIN infrared c ON a.infrared1=c.id WHERE a.remote_id=15
</select>
</mapper>