1.实体类
Order对应主表,OrderDetail对应明细表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class Order { private Integer id; private String orderCode; private String name; private String address; private List<OrderDetail> orderDetails;//封装明细结果 ...... }
public class OrderDetail { private Integer id; private Integer orderId; private Integer productId; ...... }
|
2.xml文件
orderDetail对应的xml文件
1 2 3 4 5 6 7 8 9 10 11 12
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="com.xiang.mapper.OrderDetailMapper"> <resultMap type="com.xiang.domain.OrderDetail" id="OrderDetailResult"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="orderId" jdbcType="INTEGER" property="orderId"/> <result column="productId" jdbcType="INTEGER" property="productId"/> </resultMap> </mapper>
|
order对应的xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="com.xiang.mapper.OrderMapper">
<resultMap type="com.xiang.domain.Order" id="OrderResult"> <id column="orderId" jdbcType="INTEGER" property="id"/> <result column="orderCode" jdbcType="VARCHAR" property="orderCode"/> <result column="name" jdbcType="VARCHAR" property="name"/> <result column="address" jdbcType="VARCHAR" property="address"/> <collection property="orderDetails" resultMap="com.xiang.mapper.OrderDetailMapper.OrderDetailResult"/> </resultMap> <!-- 查询某姓名的订单 --> <select id="queryOrders" parameterType="String" resultMap="OrderResult"> select master.id orderId,master.name,master.address,detail.id ,detail.productId,detail.orderId from orderMaster master left join orderDetail detail on master.id=detail.orderId where master.name = #{name} </select> </mapper>
|
注意别名和resultMap属性值对应
注意引用resultMap时需要带上namespace
3.dao
1 2 3 4 5 6 7 8 9 10 11
|
public List<Order> queryOrders(String name){ List<Order> orders = new ArrayList<Order>(); SqlSession sqlSession = null; sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession(); if (sqlSession != null) { OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class); orders = orderMapper.queryOrders(name); sqlSession.close(); } return orders; }
|
4.service
1 2 3 4 5 6 7 8
|
public List<Order> queryOrders(String name){ List<Order> orders = new ArrayList<Order>(); OrderDao orderDao = new OrderDao(); if (name != null && !"".equals(name)) { orders = orderDao.queryOrders(name); } return orders; }
|
近期评论