SSM--MyBatis框架SQL映射文件获取一对一或者一对多关系值
SSM–MyBatis框架SQL映射文件获取一对一或者一对多关系值
文章目录
- SSM--MyBatis框架SQL映射文件获取一对一或者一对多关系值
- 1.SQL映射文件获取一对一关系值(对象套对象)
- 2.SQL映射文件获取一对多关系值(对象套集合)
1.SQL映射文件获取一对一关系值(对象套对象)
- 实体类
//供应商实体类
public class Provider {private Integer id; //idprivate String proCode; //供应商编码private String proName; //供应商名称private String proDesc; //供应商描述private Integer createdBy; //创建者private String creationDate; //创建时间private Integer modifyBy; //更新者private Date modifyDate;//更新时间
}
//商品订单实体类
public class Bill {private Integer id;//IDprivate String billCode;//账单编号private String productName;// 商品名称private String productDesc;//商品描述private String productUnit;//商品单位private String modifyDate;//更新时间private Provider provider;//供应商对象
}
- BillDao.xml文件
property:实体类中对应的属性名
column: 查询列名的名字
使用association实现一对一
property:属性名
javaType:所属对象类型
<select id="findBillList" resultMap="resultBill">select a.id,a.billCode,a.productName,b.id as pid,b.proCode,b.proNamefrom smbms_bill a left join smbms_provider b on a.providerId = b.idwhere a.billCode like concat('%',#{billCode},'%')and a.productName like concat('%',#{productName},'%')
</select>
<resultMap id="resultBill" type="Bill"><!-- id标签: 表示主键 --><id property="id" column="id"/><!-- result标签: 表示普通字段 --><result property="billCode" column="billCode"/><result property="productName" column="productName"/><!-- association标签: 表示关联对象 --><!-- property: 属性名(即Bill中的对象属性) --><!-- javaType="Provider":关联对象类型 --><association property="provider" javaType="Provider"><id property="id" column="pid"/><result property="proCode" column="proCode"/><result property="proName" column="proName"/></association>
</resultMap>
2.SQL映射文件获取一对多关系值(对象套集合)
- 实体类
//供应商实体类
public class Provider {private Integer id; //idprivate String proCode; //供应商编码private String proName; //供应商名称private String proDesc; //供应商描述private String proContact; //供应商联系人private String proPhone; //供应商电话private String proAddress; //供应商地址private String proFax; //供应商传真private Integer createdBy; //创建者private String creationDate; //创建时间private Integer modifyBy; //更新者private Date modifyDate;//更新时间private List<Bill> billList; //订单列表
}//商品订单实体类
public class Bill {private Integer id;//IDprivate String billCode;//账单编号private String productName;// 商品名称private String productDesc;//商品描述private String productUnit;//商品单位private String modifyDate;//更新时间private Provider provider;//供应商对象
}
- ProviderDao.xml文件
collection 实现一对多
property:实体类中集合的名称
ofType:属性名
<!-- 一对多查询 -->
<select id="findProviderBillList" resultMap="resultProviderBill">select a.id as pid,a.proCode,a.proName,b.id,b.billCode,b.productNamefrom smbms_provider aleft join smbms_bill b on a.id= b.providerId
</select>
<resultMap id="resultProviderBill" type="Provider"><id property="id" column="pid"/><result property="proCode" column="proCode"/><result property="proName" column="proName"/><collection property="billList" ofType="Bill"><id property="id" column="id"/><result property="billCode" column="billCode"/><result property="productName" column="productName"/></collection>
</resultMap>
