mybatis关系映射之一对多和多对一详解
2017-07-06 09:40
267 查看
具体的使用关系我们就用一个例子来说明:一个顾客可以有多个订单, 一个订单只对应一个顾客
1:实体类
一对多实体配置: Person.xml
1:实体类
/** * 客户实体 */ public class Person { private String id; private String name; private String address; private String tel; private List<Order> orders; @Override public String toString() { return "{id: " + id + ", name: " + name + ", address: " + address + ", tel: " + tel + "}"; } }
/** * 订单实体 */ public class Order { private String id; private String number; private int price; private Person person; @Override public String toString() { return "{id: " + id + ", number: " + number + ", price: " + price + "}"; } }2:mapper文件
一对多实体配置: Person.xml
<?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="com.zdp.domain.Person"> <resultMap type="Person" id="personBean"> <id column="personId" property="id"/> <result column="personName" property="name"/> <result column="personAddress" property="address"/> <result column="personTel" property="tel"/> <!-- 一对多的关系 --> <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 --> <collection property="orders" ofType="Order"> <id column="orderId" property="id"/> <result column="orderNumber" property="number"/> <result column="orderPrice" property="price"/> </collection> </resultMap> <!-- 根据id查询Person, 关联将Orders查询出来 --> <select id="selectPersonById" parameterType="string" resultMap="personBean"> select p.*, o.* from person p, orders o where p.personId = o.pid and p.personId = #{id} </select> </mapper>多对一实体配置:Order.xml
<?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="com.zdp.domain.Order"> <resultMap type="Order" id="orderBean"> <id column="orderId" property="id"/> <result column="orderNumber" property="number"/> <result column="orderPrice" property="price"/> <!-- 多对一的关系 --> <!-- property: 指的是属性的值, javaType:指的是属性的类型--> <association property="person" javaType="Person"> <id column="personId" property="id"/> <result column="personName" property="name"/> <result column="personAddress" property="address"/> <result column="personTel" property="tel"/> </association> </resultMap> <!-- 根据id查询Order, 关联将Person查询出来 --> <select id="selectOrderById" parameterType="string" resultMap="orderBean"> select p.*, o.* from person p, orders o where p.personId = o.pid and o.orderId = #{id} </select> </mapper>
相关文章推荐
- 【MyBatis】的高级关系映射和查询缓存详解
- mybatis中的resultMap的映射关系详解
- Mybatis多对多映射关系详解
- mybatis关系映射之一对多和多对一
- MyBatis 映射对象关系举例(1)
- 关系映射多对多详解
- Hibernate关系映射详解
- Mybatis 一对一(OneToOne)关系映射__INSERT
- Hibernate之关系对象映射详解
- 【Mybatis】一对多、多对一关系映射
- MyBatis的xml映射配置文件详解
- MyBatis 映射对象关系举例(5)
- hibernate映射详解之: 对象 - 关系映射
- MyBatis:一对多表关系详解(从案例中解析)
- MyBatis:多对一表关系详解
- MyBatis 映射对象关系举例(2)
- Hibernate关系映射详解
- Nhibernate中One—to—One关系映射详解
- hibernate中List一对多映射关系详解
- MyBatis 映射对象关系举例(4)