博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis高级映射(多对多查询)
阅读量:3981 次
发布时间:2019-05-24

本文共 2572 字,大约阅读时间需要 8 分钟。

1、需求

查询用户及购买的商品信息

2、表结构

use用户表

orders订单表

orders订单表外键

orderdetail订单详情表(订单表和商品表的关联表)

orderdetail订单详情表外键(订单表和商品表的关联表)

items商品表

3、SQL语句

4、项目编码

4.1、Mapper.xml

定义resultMap

定义statement

4.2、定义Mapper接口
package org.mybatis.demo.mapper;import java.util.List;import org.mybatis.demo.po.User;public interface OrdersMapper {	public List
findUserAndItemsResultMap();}
4.3、单元测试

package org.mybatis.demo.test;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Before;import org.junit.Test;import org.mybatis.demo.mapper.OrdersMapper;import org.mybatis.demo.po.Orderdetail;import org.mybatis.demo.po.Orders;import org.mybatis.demo.po.User;public class TestMyBatis {	private SqlSessionFactory sessionFactory;	@Before	public void createSqlSessionFactory() throws IOException {		//引入配置文件		String resource = "SqlMapConfig.xml";		InputStream ins = Resources.getResourceAsStream(resource);				//创建SqlSession对象		sessionFactory = new SqlSessionFactoryBuilder().build(ins);	}		@Test	public void test1() {		SqlSession session = null;		try {			session = sessionFactory.openSession();			OrdersMapper mapper = session.getMapper(OrdersMapper.class);			List
list = mapper.findUserAndItemsResultMap(); for(User user : list){ System.out.println(user.getUsername()); System.out.println("########"); for(Orders order:user.getOrdersList()){ System.out.println("orderID:" + order.getId()); System.out.println("-------"); for(Orderdetail detial:order.getOrderdetails()){ System.out.println("创建时间:" + detial.getItems().getCreatetime()); } } } } finally { if(session != null){ session.close(); } } }}
4.4、源代码

你可能感兴趣的文章
STL分配器allocator
查看>>
STL::deque以及由其实现的queue和stack
查看>>
WPF与MVVM的实现(四)命令绑定
查看>>
WPF与MVVM的实现(三)List的数据绑定
查看>>
CS4344驱动
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+ESP32环境搭建正确姿势
查看>>
Win10+VSCode+ESP32环境搭建
查看>>
Win10+VS+ESP32环境搭建
查看>>
ESP32环境-每次都有新发现
查看>>
Ubuntu+win10远程桌面
查看>>
ESP32编译运行ADF音频库
查看>>
C++ 引用类型
查看>>
flutter-实现本地存储(sharePreference)
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
flutter-实现一个下拉刷新上拉加载的列表
查看>>