mybatis系列-11-一对多查询】的更多相关文章

3 一对多查询 3.1 需求(查询订单及订单明细的信息) 查询订单及订单明细的信息. 3.2 sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders…
11.1     需求 查询订单及订单明细的信息. 11.2     sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM ord…
12.1     需求 查询用户及用户购买商品信息. 12.2     sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表: orders.orderdetail.items SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, or…
10.1     需求 查询订单信息,关联查询创建订单的用户信息 10.2     resultType 10.2.1      sql语句 确定查询的主表:订单表 确定查询的关联表:用户表 关联查询使用内链接?还是外链接? 由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内链接. SELECT orders.*, username, sex, address FROM orders, USER WHERE orders.user_id = u…
项目工程结构如下: 1. 搭建MyBatis框架环境 首先需要引入两个包:mybatis.jar 和 sqljdbc42.jar包 若分页需要导入两个包:pagehelper-5.1.0.jar 和  jsqlparser-1.0.jar 设置 mybatis 配置文件:SqlMapConfig.xml, 在 src目录下建立此文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE con…
myBatis系列之三:增删改查是基于单表的查询,如果联表查询,返回的是复合对象,需要用association关键字来处理. 如User发表Article,每个用户可以发表多个Article,他们之间是一对多的关系. 1. 创建Article表,并插入测试数据: -- Drop the table if exists DROP TABLE IF EXISTS `Article`; -- Create a table named 'Article' CREATE TABLE `Article` (…
SpringBoot使用Mybatis注解进行一对多和多对多查询 GitHub的完整示例项目地址kingboy-springboot-data 一.模拟的业务查询 系统中的用户user都有唯一对应的地址信息address,每个用户可以有多量车car,类似如下结构 |-- user |-- address |-- carList |-- car1 |-- car2 二.对应的实体类如下 /省略setter/getter public class Address { private Long id;…
一对一查询 需求 查询订单信息关联查询用户信息 sql语句 /*通过orders关联查询用户使用user_id一个外键,只能关联查询出一条用户记录就可以使用内连接*/ SELECT orders.*,user.username,user.sex FROM orders,USER WHERE orders.user_id = user.id 使用resultType实现 一对一查询映射的pojo 创建pojo包括 订单信息和用户信息,resultType才可以完成映射.创建OrderCustom作…
示例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) 步骤: 1.建立两张表:用户表,账户表 让用户表和账户表之间具备一对多的关系:需要使用外键在账户表中添加 2.建立两个实体类:用户实体类和账户实体类 让用户和账户的实体类能体现出来一对多的关系 3.建立两个配置文件 用户的配置文件 账户的配置文件 4.实现配置: 当我们查询用户时,可以同时得到用户下所包含的账户信息 当我们查询账户时,可以同时得到账户的所属用户信息 定义账户信息的实体类Accoun…
MyBatis系列四 之 智能标签进行查询语句的拼接 使用Foreach进行多条件查询 1.1 foreach使用数组进行多条件查询 在MyBatis的映射文件中进行如下配置 <!--根据数组进行多条件查询 --> <select id="findByForeachAraay" resultType="Student"> select * from Student <if test="array.length>0&quo…
mybatis实现 主从表 left join  1:n 一对多 分页查询   主表从表都有查询条件+count 需求: ======================================== 1.主从表数据 是 1:m 2.主从表各自都有查询条件 3.最后查询结果 需要分页,并统计总数 注意: ======================================= 1.查询的分页,必须在数据库做,否则分页没有意义 解决方法: 注意 下面的入参中 [第一页的10条] pageN…
在实际的开发中我们经常用到的是一对一查询和一对多查询.而多对多的实现是通过中间来实现,这里就没有给出来了 比如: 订单和用户是一对一的关系(一个订单只能对应一个用户) 订单和订单明细是一对多的关系(一个订单可以对应多个订单明细) 程序结构图: 所采用的mybatis版本3.2.3 对应的jar包如下图所示 对应库表的信息 用户表: 订单表: 订单明细表: 对应的实体类的信息 用户实体类: 用户扩展实体类: 订单实体类: 订单明细实体类: =============================…
在做 mybatis 一对多查询的时候, resultMap 里面用到了集合标签 collection ,后来发现 当该条数据没有子集的时候, collection 会自动创建一个属性都是null的对象. 比如: Teacher —对应多个— Student 那么Teacher 里面应该有个 List<Student> studentList 对象,但是如果有一个Teacher里面没有Student的话,用collection会返回一个 属性都是null 的Student对象放在List里面.…
一对多查询:一个年级对应多个学生,现在要查询年级(带学生)信息. 查询结果: [main] INFO com.java1234.service.GradeTest - 查询年级(带学生)[main] INFO com.java1234.service.GradeTest - Grade [id=2, gradeName=大学二年级, students=null] 查到多方都是null,原来虽然在GradeMapper里声明了方法返回结果是Grade类型(如下图): 但是映射文件如果也写Grade…
从今天开始将要开始由浅入深--MyBatis系列博客的编写; 主要目录如下: MyBatis基础知识篇 1.由浅入深---ORM简介 2.由浅入深---MyBatis的整体架构 3.由浅入深---第一个MyBatis程序 4.由浅入深---MyBatis的全局配置文件 5.由浅入深---MyBatis的映射文件 6.由浅入深---MyBatis的日志框架 7.由浅入深---MyBatis的注解开发 8.由浅入深---MyBatis的动态SQL 9.由浅入深---MyBatis的一对多 9.由浅入…
本章介绍Mybatis之表的关联查询 一对一关联 查询员工信息以及员工的部门信息 1.准备表employee员工表,department部门表 CREATE TABLE `employee` ( `id` ) NOT NULL AUTO_INCREMENT, `last_name` ) DEFAULT NULL, `gender` ) DEFAULT NULL, `email` ) DEFAULT NULL, `dept_id` ) DEFAULT NULL COMMENT '部门ID', PR…
MyBatis 系列五 之 关联映射 一对多的关联映射 一对多关联查询多表数据 1.1在MyBatis映射文件中做如下配置 <!--一对多单向的连接两表的查询--> <resultMap type="Dept" id="deptMapper"> <id property="deptNo" column="deptNo"/> <result property="deptName…
转:Mybatis系列之集合映射 上篇文章我们讲了关联映射,实现了销售与登录用户之间的关联.本文我们接着来讲一讲集合映射,实现销售与客户的多对多关系. 实现销售与客户多对多关系 本文中仍延用<Mybatis系列之关联映射>中的映射接口和测试用例,这里仅对增加和修改的内容进行讲解. 第一步,在动手编写映射文件之前,我们需要对Sales类增加一个List属性,用以保存销售员对应的客户列表. /** * */ private List<Customer> customers; publi…
    记录下mybatis的集合查询中碰到的问题 https://jaychang.iteye.com/blog/2357143   MyBatis ofType和javaType区别 https://blog.csdn.net/u013216156/article/details/78642920   mybatis 关联查询 resultMap 同名冲突 https://blog.csdn.net/caser_hdmi/article/details/75948091   使用mybati…
封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时,不放弃播种和耕耘的信心, 热时不燥.冷时不弃, 这就是深秋心态. · 大疫情,相信只是大自然的规律, 也恰是我们保持深秋心态的时候, 默默播种和耕耘吧, 今年,世界会慢慢复苏,希望都会来临. 2021年要信心满满 ヾ(◍°∇°◍)ノ゙ 定会收货满满 ~ 上图保存可做朋友圈封面图 ~ 前言 上节我们…
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( 也很枯燥),由于篇幅实在过于冗长,我预计大家想看完得花上两段上班地铁公交车的时间 ... 不过应该有让大家了解到 Mybatis 的核心配置文件 config.xml 全貌,其中的 元素即是我们本节准备登场介绍的 SQL 映射器,上节有介绍了三种引入 SQL 映射器的方式,本节我们就主要聊聊它的几个顶级元素…
封面:洛小汐 作者:潘潘 在理解中执行,在执行中理解,学习技术也循此道. 前言 上一篇文章 <Mybatis系列全解(二):Mybatis简介与环境搭建> ,我们对 Mybatis 做了初步讲解,并搭建了一套基本环境,共同完成了一次查询操作.所以本篇文章我们在此基础上,继续拓展了插入.修改.删除三种操作,把我们的CRUD基础操作进行完善. 目录 1.Mybatis查询操作回顾 2.插入操作 3.修改操作 4.删除操作 5.总结 Mybatis查询操作回顾 默认已安装 Java 开发环境.Mys…
封面:洛小汐 作者:潘潘 Mybatis 是一套持久层框架,灵活易用,特别流行. 前言 Mybatis系列全解,我们预计准备10+篇文章,让我们了解到 Mybatis 的基本全貌,真正从入门到上手,从上手到精通,本文为首篇,我们开始. 目录 1.Mybatis是什么 2.Mybatis的前世今生 3.Mybatis的优势 4.Mybatis整体架构图 5.环境搭建 6.总结 Mybatis是什么 我们先看一下官网简介,Mybatis 官网:https://mybatis.org/mybatis-…
上篇文章<深入浅出Mybatis系列(八)---mapper映射文件配置之select.resultMap>简单介绍了mybatis的查询,至此,CRUD都已讲完.本文将介绍mybatis强大的动态SQL. 那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误.Mybatis的动态SQL功能正是为了解决这种问题, 其通过 if, choose, when, otherwi…
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select.resultMap的用法.select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮助我们很好地进行高级映射.下面就开始看看select 以及 resultMap的用法: 先看select的配置吧: <select <!-- 1. id (必须配置) id是命名空间中的…
MyBatis 实践 标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装. if 对查询条件进行判断,如果输入参数不为空才进行查询条件的拼接. mapper <select id="selectUser" resultType="com.fq.domain.User" parameterType="com.fq.domain.User"> SELECT * FROM…
示例项目:MIPO_CRM 一.一对一关联 示例:订单与销售机会 描述:在业务员与客户的联系人的联系记录中可以生成一条销售机会,而此条销售机会可生成一条订单,两者呈一对一关联. 1.表设计 opportunity(销售机会表) orders(订单表) 2.pojo Opportunity /** * 销售机会机会 * @author Administrator * */ public class Opportunity implements Serializable{ private int o…
查询所有用户信息,关联查询订单及订单明细信息及商品信息,订单明细信息中关联查询商品信息 1.1sql 主查询表:用户信息 关联查询:订单.订单明细,商品信息 SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id, items.name items_name, items.detail items_detail FRO…
查询所有订单信息及订单下的订单明细信息. sql语句 主查询表:订单表 关联查询表:订单明细 SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id FROM orders, USER, orderdetail WHERE orders.user_id = user.id AND orders.id = orderde…
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select.resultMap的用法.select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮助我们很好地进行高级映射.下面就开始看看select 以及 resultMap的用法: 先看select的配置吧: <select <!-- 1. id (必须配置) id是命名空间中的…