MyBatis映射文件的resultMap如何做表关联
public class MybatisOrder {.... private Mybatiscustomer customer; private List<MybatisOrderItem> itemList;....public class MybatisOrderItem { private MybatisOrder order;...对应的mapper文件为:
MybatiscustomerMapper.xml:<resultMap id="AssociationSelectMap" type="com.test.mybatis.vo.MybatisOrder" ><id column="ORDERID" property="orderid" jdbcType="DECIMAL" /><result column="ORDERTYPE" property="ordertype" jdbcType="VARCHAR" /><result column="ORDERDATE" property="orderdate" jdbcType="DATE" /><association property="customer" column="CUSTOMERID" select="com.test.mybatis.mapper.MybatiscustomerMapper.getCustomerByID"/> <collection property="itemList" column="ORDERID" javaType="ArrayList" ofType="MybatisOrderItem" select="com.test.mybatis.mapper.MybatisOrderItemMapper.selectItemsByOrderID"/></resultMap><select id="getOrderByID" resultMap="AssociationSelectMap" parameterType="java.math.BigDecimal" >select *from MYBATISORDER where ORDERID = #{orderid,jdbcType=DECIMAL}</select>MybatisOrderItemMapper.xml: <resultMap id="AssociationMap" type="com.test.mybatis.vo.MybatisOrderItem" > <id column="ITEMID" property="itemid" jdbcType="DECIMAL" /> <result column="ITEMTYPE" property="itemtype" jdbcType="VARCHAR" /> <result column="ITEMQUANTITY" property="itemquantity" jdbcType="VARCHAR" /> <result column="ITEMCOST" property="itemcost" jdbcType="VARCHAR" /> <association property="order" column="ORDERID" select="com.test.mybatis.mapper.MybatisOrderMapper.getOrderByID"/> </resultMap> <select id="selectItemByID" resultMap="AssociationMap" parameterType="java.math.BigDecimal" > select *from MYBATISORDERITEMwhere ITEMID = #{itemid,jdbcType=DECIMAL} </select>MybatiscustomerMapper.xml:因为不和别的表做关联,只有简单的id,result配置. <resultMap id="BaseResultMap" type="com.test.mybatis.vo.Mybatiscustomer" > <id column="ID" property="id" jdbcType="DECIMAL" /> <result column="NAME" property="name" jdbcType="VARCHAR" /> </resultMap> <select id="getCustomerByID" resultMap="BaseResultMap" parameterType="java.math.BigDecimal" > select *from MYBATISCUSTOMER where ID = #{id,jdbcType=DECIMAL} </select>