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;
@Override
protected 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();
}
@Test
public void testSelectPersonById() {
PersonBean person=sqlSession.selectOne("com.pyy.bean.PersonBean.selectPersonById",1);
System.out.println(person.getOrders().size());
}
@Test
public void testSelectOrdersById() {
OrdersBean orders=sqlSession.selectOne("com.pyy.bean.OrdersBean.selectOrdersById",1);
System.out.println(orders.getPerson());
}