🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一对一 ### 第一种写个扩展类 ![](https://img.kancloud.cn/43/54/43548e2052628ecff2e6009b2f5f3ba3_291x119.png) ![](https://img.kancloud.cn/c8/4b/c84ba70fb5cba5eb245a97f854a6943d_306x154.png) ![](https://img.kancloud.cn/52/5e/525edce140482dcdfdbb615340f97503_527x204.png) ~~~ <mapper namespace="com.gyf.mapper.OrdersMapper"> <select id="findOrderById" parameterType="int" resultType="ordersExt"> SELECT o.*,u.username,u.address FROM orders o,user u WHERE o.user_id=u.id AND o.id = #{id} </select> </mapper> ~~~ ### 第二种写法 ![](https://img.kancloud.cn/e7/b3/e7b3d7d68f8a072217795aca87ff8e54_456x226.png) ~~~ <resultMap id="orderRelMap" type="orders"> <id column="id" property="id"></id> <id column="note" property="note"></id> <id column="number" property="number"></id> <id column="createtime" property="createtime"></id> <association property="user" javaType="user"> <id column="user_id" property="id"></id> <id column="username" property="username"></id> <id column="address" property="address"></id> </association> </resultMap> <select id="findOrderBysId" parameterType="int" resultMap="orderRelMap"> SELECT o.*,u.username,u.address FROM orders o,user u WHERE o.user_id=u.id AND o.id = #{id} </select> ~~~ ![](https://img.kancloud.cn/71/4f/714f7c9343eb0df2a7df13b1db062baa_976x67.png) ## 一对多 ![](https://img.kancloud.cn/86/02/8602d56feebc499b22e8173de950a53c_500x57.png) ~~~ <resultMap id="orderRelMaps" type="orders"> <id column="id" property="id"></id> <id column="note" property="note"></id> <id column="number" property="number"></id> <id column="createtime" property="createtime"></id> <association property="user" javaType="user"> <id column="user_id" property="id"></id> <id column="username" property="username"></id> <id column="address" property="address"></id> </association> <collection property="orderDetailLists" ofType="orderDetail"> <id column="detail_id" property="id"></id> <id column="items_id" property="itemsId"></id> <id column="items_num" property="itemsNum"></id> </collection> </resultMap> <select id="findOrderListById" parameterType="int" resultMap="orderRelMaps"> SELECT o.*,u.username,u.address,od.id detail_id,od.items_id,od.items_num FROM orders o,user u,orderdetail od WHERE o.user_id=u.id AND o.id = od.orders_id AND o.id = #{id} </select> ~~~ ![](https://img.kancloud.cn/ab/b4/abb40f97d1914ea81bc6fb12c1087946_1057x113.png) ## 多对多 ~~~ <resultMap id="userRulMap" type="user"> <id column="id" property="id"></id> <result column="username" property="username"></result> <result column="address" property="address"></result> <collection property="ordersList" ofType="orders"> <id column="order_id" property="id"></id> <result column="number" property="number"></result> <result column="createtime" property="createtime"></result> <result column="note" property="note"></result> <collection property="orderDetailLists" ofType="OrderDetail"> <id property="id" column="detail_id"></id> <result property="itemsId" column="items_id"></result> <result property="itemsNum" column="items_id"></result> <collection property="items" ofType="items"> <id property="name" column="name"></id> <result property="price" column="price"></result> <result property="detail" column="detail"></result> </collection> </collection> </collection> </resultMap> <select id="findUserOrderInfo" resultMap="userRulMap"> SELECT u.id, u.username, u.address, o.id order_id, o.number, o.createtime, o.note, od.id detail_id, od.items_id, od.items_num, it.name, it.price, it.detail FROM user u, orders o, orderdetail od, items it WHERE o.user_id = u.id AND o.id = od.orders_id AND od.items_id = it.id; </select> ~~~ ~~~ @Test public void test1() throws IOException { UserMapper userMapper=sqlSession.getMapper(UserMapper.class); List<User> users= userMapper.findUserOrderInfo(); for (User user:users) { System.out.println(user); for (Orders orders:user.getOrdersList()){ System.out.println("order"+orders); for (OrderDetail orderDetail:orders.getOrderDetailLists()){ System.out.println("orderDetail"+orderDetail); for (Items itemss:orderDetail.getItems()){ System.out.println("详情"+itemss); } } } } ~~~ ``` User [id=1, username=王五, sex=null, birthday=null, address=null] orderOrders{id=3, user_id=null, note='null', createtime=Wed Feb 04 13:22:35 CST 2015, number='1000010'} orderDetailOrderDetail{id=1, itemsId=1, itemsNum=1} 详情Items{id=null, name='台式机', price=3000, detail='该电脑质量非常好!!!!', pic='null', createtime=null} orderDetailOrderDetail{id=2, itemsId=2, itemsNum=2} 详情Items{id=null, name='笔记本', price=6000, detail='笔记本性能好,质量好!!!!!', pic='null', createtime=null} orderOrders{id=4, user_id=null, note='null', createtime=Tue Feb 03 13:22:41 CST 2015, number='1000011'} orderDetailOrderDetail{id=4, itemsId=2, itemsNum=2} 详情Items{id=null, name='笔记本', price=6000, detail='笔记本性能好,质量好!!!!!', pic='null', createtime=null} orderDetailOrderDetail{id=3, itemsId=3, itemsNum=3} 详情Items{id=null, name='背包', price=200, detail='名牌背包,容量大质量好!!!!', pic='null', createtime=null} User [id=33, username=zhansga, sex=null, birthday=null, address=lisi] orderOrders{id=6, user_id=null, note='null', createtime=Wed Oct 20 15:58:37 CST 2021, number='1000012'} orderDetailOrderDetail{id=5, itemsId=2, itemsNum=2} 详情Items{id=null, name='笔记本', price=6000, detail='笔记本性能好,质量好!!!!!', pic='null', createtime=null} DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@313b2ea6] DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@313b2ea6] DEBUG [main] - Returned connection 825962150 to pool. ```