简单的一对一映射查询:
XML映射代码:
<mapper namespace="com.demo.mapper.UserDao">
<!--属性名和数据库列名映射-->
<resultMap id="userMap" type="com.demo.model.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="iden" column="iden"/>
<result property="coudid" column="coudid"/>
<result property="tpnumber" column="tpnumber"/>
<!-- 将Doctor里的dname属性映射到User表里去,这里的dname 记住一定要在实体类里get set 方法,我犯过错,哈哈哈-->
<association property="dname" javaType="com.demo.model.Doctor">
<!-- User join Doctor 进行联合查询 1对1-->
<id property="id" column="id"/>
<result property="dname" column="dname"/>
</association>
</resultMap>
查询代码:
<select id="selectUser" resultMap="userMap" parameterType="Integer">
SELECT
a.id id,
a.name name,
a.sex sex,
d.dname dname,
a.tpnumber tpnumber,
(
SELECT
count(iden)
FROM user b
WHERE b.tpnumber >#{tpnumber}
AND
a.coudid = b.coudid
AND
iden!='1'
)iden
FROM user a
LEFT JOIN doctor d
ON a.coudid=d.id
WHERE a.tpnumber=#{tpnumber}
</select>
</mapper>
表结构:
User表里的字段有:
private int id; //编号id;
private String name; //姓名;
private String sex; //性别;
private int coudid; //科室编号;
private int iden; //体检标识(0标识未体检,1标识已体检);
private int tpnumber;//体检临时编号;
private Doctor dname;//这是引入的Doctor里的dname属性;
Doctor表字段:
private int id; //科室编号;
private String dname;//科室名字;
当然了,这个比较简单,其他的没写,希望能帮到您。