MyBatis多对一,一对多关联映射

来源:互联网 发布:外国人淘宝 编辑:程序博客网 时间:2024/04/28 17:03

PersonBean.java

private int pId;private String pName;private String pAddress;private String pTel;/** 订单    一对多**/private List<OrdersBean> orders;


OrderBean.java

private int oId;private String oNumber;private double oPrice;/** 用户  多对一 **/private PersonBean person;


PersonBean.xml

<mapper namespace="com.pyy.bean.PersonBean"><resultMap type="personBean" id="personMap"><id column="pid" property="pId" /><!-- column:数据库中的列名,property:类中的属性名 --><result column="pname" property="pName" /><result column="paddress" property="pAddress" /><result column="ptel" property="pTel" /><!-- 一对多 property指的是PersonBean中的属性 ofType:集合中的类型 --><collection property="orders" ofType="OrdersBean"><id column="oid" property="oId" /><result column="onumber" property="oNumber" /><result column="oprice" property="oPrice" /></collection></resultMap><!--parameterType:输入参数类型, resultMap 与前面定义的resultMap一致 --><select id="selectPersonById" parameterType="int" resultMap="personMap">select p.*,o.* from person p,orders o where p.pid=o.pid and p.pid=#{p}</select></mapper>


OrderBean.xml

<mapper namespace="com.pyy.bean.OrdersBean"><resultMap type="OrdersBean" id="ordersMap"><id column="oid" property="oId" /><result column="onumber" property="oNumber" /><result column="oprice" property="oPrice" /><!-- 多对一关联映射 --><!-- property:类中的属性名,javaType:属性名所对应的类型 --><association property="person" javaType="PersonBean"><id column="pid" property="pId" /><result column="pname" property="pName" /><result column="paddress" property="pAddress" /><result column="ptel" property="pTel" /></association></resultMap><select id="selectOrdersById" parameterType="int" resultMap="ordersMap">select p.*,o.* from person p,orders o where p.pid=o.pid and o.oid=#{o}</select></mapper>


测试类:

private SqlSession sqlSession;@Overrideprotected void setUp() throws Exception {String resource = "com/pyy/config/SqlMapConfig.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);sqlSession = sqlSessionFactory.openSession();}@Testpublic void testSelectPersonById() {PersonBean person=sqlSession.selectOne("com.pyy.bean.PersonBean.selectPersonById",1);System.out.println(person.getOrders().size()); }@Testpublic void testSelectOrdersById() {OrdersBean orders=sqlSession.selectOne("com.pyy.bean.OrdersBean.selectOrdersById",1);System.out.println(orders.getPerson()); }


 

原创粉丝点击