mybatis 多表对应

这个文件估计也就差不多了
<?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="person">
<sql id="sqlListAll">
SELECT
p.*,
ic.id id_card_id,
ic.no id_card_no,
ic.address id_card_address,
bc.id bank_card_id,
bc.no bank_card_no,
bc.amout bank_card_amout,
j.id job_id,
j.name job_name,
j.duty job_duty
FROM
person p
JOIN id_card ic ON p.id = ic.person_id
LEFT JOIN bank_card bc ON p.id = bc.person_id
LEFT JOIN person_job pj ON p.id = pj.person_id
LEFT JOIN job j ON j.id = pj.job_id
</sql>

<resultMap id="rmList" type="com.mj.bean.Person">
<id property="id" column="id"/>
<result property="name" column="name"/>
<association property="idCard"
javaType="com.mj.bean.IdCard">
<id property="id" column="id_card_id"/>
<result property="no" column="id_card_no"/>
<result property="address" column="id_card_address"/>
</association>
<collection property="bankCards" ofType="com.mj.bean.BankCard">
<id property="id" column="bank_card_id"/>
<result property="no" column="bank_card_no"/>
<result property="amout" column="bank_card_amout"/>
</collection>
<collection property="jobs" ofType="com.mj.bean.Job">
<id property="id" column="job_id"/>
<result property="name" column="job_name"/>
<result property="duty" column="job_duty"/>
</collection>
</resultMap>

<select id="list" resultMap="rmList">
<include refid="sqlListAll"/>
</select>

<select id="get" parameterType="int" resultMap="rmList">
<include refid="sqlListAll"/> WHERE p.id = #{id}
</select>
</mapper>
posted @ 2022-09-05 18:27  白芷100  阅读(19)  评论(0)    收藏  举报