association元素
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select * from 查询的主表 where id = #{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <association property="查询表对应的实体类的对象属性" column="列名" javaType="映射表对应的实体对象属性的类型(路径.JOPO类)" select="引入嵌套查询的子SQL语句(路径.id名)" /> </resultMap>
<select id="被引入嵌套查询的子SQL语句 id名" parameterType="id参数类型" resultType="查表对应的Java类"> select * from 映射表 where id = #{id} </select>
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select a.*,b.普通列名(对应result元素) from 查询的主表 a,映射表 b where a.id=b.id and a.id = #{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <association property="映射表对应的实体类的对象属性" javaType="映射到实体对象属性的类型(路径.JOPO类)"> <id property="映射实体类的主键属性名" column="映射表的主键名" /> <result property="映射实体类的其他类属性名" column="映射表的普通列名" /> ··· </association> </resultMap>
collection元素
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select a.*,b.普通列名(对应result元素) from 查询的主表 a,映射表 b where a.id=b.id and a.id = #{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <collection property="查询表对应的实体类的对象属性" ofType="映射实体类(路径.JOPO类)"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· </collection> </resultMap>
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select * from 查询的主表 where id=#{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <collection property="查询表对应的实体类的对象属性" column="列名" ofType="映射实体类(路径.JOPO类)" select="引入嵌套查询的子SQL语句(路径.id名)"/> </resultMap>
<resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· </resultMap> <select id="id名" resultMap="外部resultMap名"> select * from 映射表 where 外键_id=#{id} </select>
collection元素
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select a.*,b.普通列名(对应result元素) from 查询的主表 a,映射表 b,关联表 c where c.查询的主表_id=查询的主表.id and c.映射表_id=映射表.id and 查询的主表.id=#{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <collection property="查询表对应的实体类的对象属性" ofType="映射实体类(路径.JOPO类)"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· </collection> </resultMap>
<select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select * from 查询的主表 where id=#{id} </select> <resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· <collection property="查询表对应的实体类的对象属性" column="列名" ofType="映射实体类(路径.JOPO类)" select="引入嵌套查询的子SQL语句(路径.id名)"> </collection> </resultMap>
<resultMap type="查询表对应的实体类(路径.JOPO类)" id="外部resultMap名"> <id property="主键属性名" column="对应表的主键名" /> <result property="其他类属性名" column="对应表的普通列名" /> ··· </resultMap> <select id="id名" parameterType="id参数类型" resultMap="外部resultMap名"> select * from 映射表 where id in( select 映射表_id from 关联表 where 查询的主表_id=#{id} ) </select>
关联表id | 查询的主表id | 对应的映射表id |
---|
关系:
查询的主表——关联表——映射表
1 n n 1
XML关键配置代码如上。我已经用便于理解的文字替换了可替换的部分,如果看代码有有错误或者不明白的地方可以留言交流~