mybatis的3种关联映射查询 |
您所在的位置:网站首页 › mybatis的多对多关联映射中要用到多少张数据表 › mybatis的3种关联映射查询 |
一对一查询: 查询所有订单和用户信息。 一个订单信息只会是一个人下的订单,所以从查询订单信息 出发关联查询用户信息为一对一查询。 一对多查询: 查询所有订单信息及订单下的订单明细信息,订单信息与订单明细为一对多关系。 多对多查询: 查询所有用户信息,关联查询订单及订单明细信息 ,订单明细信息中关联查询商品信息。 一个用户对应多个订单,一个订单对应多个明细,一个订单明细对应一个商品。
返回类型可以用 resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用!
--用一个小案例来对上面所说的进行实际操作-- 项目目录: 首先,创建4个实体类,对应四张表 用户表: 商品表: 订单表:
订单详情表: 一对一关联映射查询: OrderMapper.xml select o.id oids,o.orderid,o.createtime,o.note,u.id uids,u.username,u.birthday,u.address from orders o,t_user u where o.userid=u.idTest: public class OrderTest { public static void main(String[] args) throws IOException { InputStream inputStream = Resources.getResourceAsStream("mybatis/mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = factory.openSession(); OrdersMapper orderMapper = session.getMapper(mapper.OrdersMapper.class); List orders = orderMapper.selectOrderAndUser(); for (Orders string : orders) { System.out.println(string.toString()); } } }查询后得到的内容: 一对多关联映射查询:OrderMapper.xml select o.id oids,o.orderid,o.createtime ocreatetime,o.note, u.id uids,u.username,u.birthday,u.address, od.id odid,od.itemsid,od.itemsnum, i.id iid,i.name,i.price,i.pic,i.createtime icreatetime,i.detail from orders o,t_user u,orderdetail od,items i where o.userid=u.id and o.id=od.ordersid and i.id=od.itemsidTest: public static void main(String[] args) throws IOException { InputStream inputStream = Resources.getResourceAsStream("mybatis/mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = factory.openSession(); OrdersMapper orderMapper = session.getMapper(mapper.OrdersMapper.class); List orders = orderMapper.selectOrdersAndOrdersDetail(); for (Orders string : orders) { System.out.println(string.toString()); } }查询后得到的内容: 多对多关联映射查询:UserMapper.xml select o.id oids,o.orderid,o.createtime ocreatetime,o.note, u.id,u.username,u.birthday,u.address, od.id odid,od.itemsid,od.itemsnum, i.id iid,i.name,i.price,i.pic,i.createtime icreatetime,i.detail from orders o,t_user u,orderdetail od,items i where o.userid=u.id and o.id=od.ordersid and i.id=od.itemsidTest: public static void main(String[] args) throws IOException { InputStream inputStream = Resources.getResourceAsStream("mybatis/mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = factory.openSession(); UserMapper userMapper = session.getMapper(mapper.UserMapper.class); List user = userMapper.selectUserAndOrdersAndOrderDetailAndItems(); for (User user2 : user) { System.out.println(user2.toString()); } }查询后得到的内容: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |