首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mybatis关联查询问题(一对对一)

博客系统主要有以下几张构成: Author:作者信息,记录作者的信息,用户名和密码,邮箱等。 Blog   :  博客,一个作者可以开多个博客,即Author和Blog的关系是一对。...Post  : 文章记录,记录文章发表时间,标题,正文等信息;一个博客下可以有很多篇文章,Blog 和Post的关系是一对。...Comments:文章评论,记录文章的评论,一篇文章可以有很多个评论:Post和Comments的对应关系是一对。...Mybatis还支持一种嵌套结果的查询:即对于一对对一的情况的查询,Mybatis通过联合查询,将结果从数据库内一次性查出来,然后根据其一对对一,的关系和ResultMap中的配置...以上是通过查询Blog所有信息来演示了一对对一的映射对象处理。

5.2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mybatis【17】-- Mybatis自关联查一对查询

    GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-13-oneself-one2many,需要自取,需要配置maven环境以及mysql...docsify文档地址在:https://damaer.github.io/Mybatis-Learning/#/ 所谓自关联查询,是指自己既然充当一方,又充当多方。...比如新闻栏目的数据,自己可以是父栏目,也可以是多方,子栏目。在数据表里面实现就是一张,有一个外键pid,用来表示该栏目的父栏目,一级栏目没有父栏目的,可以将其外键设置为0。...DB如下: [29192b55571a01e02f992bad110400da.png] 查询指定栏目的所有子孙栏目 查询指定目录的所有子孙目录,我们需要使用递归的思想,查出当前栏目之后,需要将当前栏目的...实体类NewsLabel.java,使用一对的关系: import java.util.Set; public class NewsLabel { private Integer id; private

    91900

    Mybatis【17】-- Mybatis自关联查一对查询

    GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-13-oneself-one2many,需要自取,需要配置maven环境以及mysql...docsify文档地址在:https://damaer.github.io/Mybatis-Learning/#/ 所谓自关联查询,是指自己既然充当一方,又充当多方。...比如新闻栏目的数据,自己可以是父栏目,也可以是多方,子栏目。在数据表里面实现就是一张,有一个外键pid,用来表示该栏目的父栏目,一级栏目没有父栏目的,可以将其外键设置为0。...DB如下: 查询指定栏目的所有子孙栏目 查询指定目录的所有子孙目录,我们需要使用递归的思想,查出当前栏目之后,需要将当前栏目的id作为下一级栏目的pid。...实体类NewsLabel.java,使用一对的关系: import java.util.Set; public class NewsLabel { private Integer id; private

    60720

    Spring data 数据库建一对一,一对

    @OneToOne 一对结构,如下面ER图所示,users是用户表里面有登陆信息,profile 保存的时死人信息,这样的目的是我们尽量减少users的字段,在频繁操作该的时候性能比较好,另外一个目的是为了横向水平扩展...OneToMany 一对 我们要实现一个一对实体关系,ER 图如下 +----------+ +------------+ | Classes |...+----------+ +--o | classes_id | +------------+ classes 需要...OneToMany 注解,Student 需要 ManyToOne 注解,这样就建立起了之间的关系 package com.example.api.domain.test; import...ManyToMany 用户与角色就是一个的关系,对多是需要中间做关联的。所以我方需要一个 user_has_role

    3K50

    数据库在一对一、一对怎么设计关系

    1、一对一可以个实体设计在一个数据库中l例如设计一个夫妻,里面放丈夫和妻子 2、一对可以建,将一这一方的主键作为那一方的外键,例如一个学生可以加一个字段指向班级(班级与学生一对的关系...) 3、可以多加一张中间,将另外的主键放到这个中(如教师和学生就是的关系) ---- 关于外键的设置: 首先,外键引用的那个列在主表中必须是主键列或者唯一列。...n:m的情况,需要建立一个关系个原和其关系分别是1:n,1:m ---- 关于主外键及多表联系的进一步理解: 主外键的存在是依托个实体之间的关系而存在的; 比如班级与学生的关系: 一个班级可以有多个学生...,并且一个学生只能属于一个班级,这就是一对的关系; 那么设计数据库的时候就应该在学生内存放班级的ID作为外键,为什么不在班级内放学生呢?...) references class(classid) --本classid是基于classclassid的外键 ) --------- 如上定义了主外键后,间的关系就是一对的关系了,

    4.9K20

    Hbase篇--HBase中一对设计

    一.前述 今天分享一篇关于HBase的一对的案例的分析。...二.具体案例 案例一.    人员-角色   人员有多个角色  角色优先级   角色有多个人员   人员 删除添加角色   角色 可以添加删除人员   人员 角色 删除添加 ?...PS:说明,User和Role, User中定义个列族,第一个列族是名字,第二个列族中  多个列定义为具体的角色,列的内容定义为具体的值,即优先级(这里利用了列也能存信息,所以把角色Id定义为具体的列...,值越大代表优先级越高) 案例二.一对 组织架构 部门-子部门   查询 顶级部门 查询 每个部门的所有子部门   部门 添加、删除子部门   部门 添加、删除 ?...PS:解释 一个 rowkey中0代顶级部门  1代非顶级部门  因为顶级部门不是经常查  列族的列是具体的子部门列表。值是具体的名称。

    2K30

    Java——简单Java类深入(数据与简单Java类、一对映射、双向一对映射、映射)

    由于目前没有接触过多的程序设计功能,所以对于此处的访问就有了一些限制,目前要求可以完成如下个操作: 根据数据的结构关系进行数据以及引用的设置; 根据数据的结构可以取出所需要的数据。...3、双向一对映射 【举例】:用户-课程-考试成绩 ?...; 一个权限组包含多个权限,一对多关系; 一个角色对应有多个权限组,每个权限组可能有多个角色,对多关系; //用户 class User{ private String userid;...Role r1 = new Role(10,"超级管理员角色"); Role r2 = new Role(10,"普通管理员角色"); //5、设置权限组与权限的关系,一对...Role r1 = new Role(10,"超级管理员角色"); Role r2 = new Role(10,"普通管理员角色"); //5、设置权限组与权限的关系,一对

    2.6K20

    MySQL联查询时,我们为什么建议小驱动大

    一、优化原则 小驱动大,即小的数据集驱动大得数据集。在知道什么是小驱动达大之前,我们先来了解个查询关键字,IN 与 EXISTS。我们通过段查询语句先来了解一下它们的作用。...我建立了,一张员工,一张部门,员工中有部门id 这个属性,将这关联起来。...EXISTS 子查询其实在执行时,MySql 已经对它做了一些优化并不是对每条数据进行对比。 二、总结 在实际操作过程中我们要对的dept_id 都设置索引。...在一开始我们就讲了一个优化原则即:小驱动大,在我们使用IN 进行关联查询时,通过上面IN 操作的执行顺序,我们是先查询部门再根据部门查出来的id 信息查询员工信息。...但是如果中的数据量差不多时那么是使用IN 还是使用 EXISTS 差别不大。

    5.4K22

    MySQL主(主)从架构配置

    一、角色划分 1、MySQL数据库规划 我现在的环境是:zhdy04和zhdy05已经做好了主主架构配置,现在需要的是把台或者多台从服务器与主一一同步。 如果搭建主主环境,参照此链接!...主机名 IP 地址 角色 Mysql_server_id zhdy04 192.168.230.145 masterA 145 zhdy05 192.168.230.146 masterB 146 zhdy06...二、MySQL数据同步设定 1、因为咱们测试的机器数据库全部都是初始值,所以不需要导入任何数据库。(写的原因是假如,配置的环境和现在不一致。...zhdy06 slaveA服务器: mysql> start slave; Query OK, 0 rows affected (0.02 sec) mysql> show slave status\...8、总结 也就是说,未来我们搭建从看完这个配置是不是也有思路了?就像配置路由器一样,互相连接的互相授权下是不是就可以了?

    7.1K90

    MySQL数据导出、删除、重命名、时间转化及级联查

    远程登录 mysql -h host -u user -p 2....删除或数据 #要清空中的所有记录 DELETE FROM 名; TRUNCATE TABLE 名; #如果要删除中的部分记录,只能使用DELETE语句: DELETE FROM 名 WHERE...首先判断数据是否存在——>如果不存在,则插入 ——>如果已存在,则更新 一条记录必有唯一键,如果insert的时候,唯一键冲突了,则执行update操作【insert会执行一条语句,update会执行条语句...时间操作 #将时间转化成时间戳格式 select unix_timestamp(now()); #将时间戳转化成时间格式: select from_unixtime(1251884321); #mysql...convert_tz('2014-02-14 00:00:00','+08:00','+09:00'); #其中,参数的意义:CONVERT_TZ (datetime, from_tz, to_tz); 10.级联查

    2.3K21

    Mybatis之间的关系分析 注解开发 @One @Many介绍 一对一对

    之间的关系分析 之间的关系有几种: 一对 对一 mybatis中的多表查询: 一对 实例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户...) 步骤: 1.建立:用户,账户 让用户和账户之间具备一对的关系:需要使用外键在账户中添加 2.建立个实体类:用户实体和账户实体类 让用户和账户的实体类能体现出来一对的关系...一个角色可以赋予多个用户 步骤: 1.建立:用户,账户 让用户和角色之间具备的关系:需要使用中间,中间中包含各自的主键,在中间中是外键。...2.建立个实体类:用户实体和账户实体类 让用户和角色的实体类能体现出来的关系 各自包含对方一个集合引用 3.建立个配置文件 用户的配置文件 角色的配置文件 4.实现配置:...:通常情况下我们都是采用延迟加载 对一,一对一:通常情况下我们都时采用立即加载 一对一 @One 立即记载 方法 一对 @Many 延迟记载 方法

    2.7K20

    MySQL中的种临时 外部临时

    MySQL中的种临时 外部临时 通过CREATE TEMPORARY TABLE 创建的临时,这种临时称为外部临时。这种临时只对当前用户可见,当前会话结束的时候,该临时会自动关闭。...这种临时会被MySQL自动创建并用来存储某些操作的中间结果。这些操作可能包括在优化阶段或者执行阶段。...这种内部对用户来说是不可见的,但是通过EXPLAIN或者SHOW STATUS可以查看MYSQL是否使用了内部临时用来帮助完成某个操作。...内部临时在SQL语句的优化过程中扮演着非常重要的角色, MySQL中的很多操作都要依赖于内部临时来进行优化。...内部临时种类型:一种是HEAP临时,这种临时的所有数据都会存在内存中,对于这种的操作不需要IO操作。另一种是OnDisk临时,顾名思义,这种临时会将数据存储在磁盘上。

    3.5K00

    场景下MySQL临时的作用

    墨墨导读:MySQL临时在很多场景中都会用到,比如用户自己创建的临时用于保存临时数据,以及MySQL内部在执行复杂SQL时,需要借助临时进行分组、排序、去重等操作。...下面将会对MySQL临时的一些概念、分类和常见问题进行整理。 ? MySQL临时类型 1....,MySQL内部将使用自动生成的临时,以辅助完成工作。...tmpdir:临时目录,当临时大小超过一定阈值,就会从内存转移到磁盘上。 7. tmpdir变量表示磁盘上临时所在的目录。 MySQL临时表相关状态变量 1....MySQL临时注意事项 1. MySQL临时可能导致磁盘可用空间减少: 在MySQL5.7版本之前,临时的存储引擎默认为myisam,myisam临时在SQL执行结束后,会自动删除临时

    4.7K10

    一对场景下的exists子查询比join连查询快这么

    查询可以使用join、exists和in等方式,其中exists和in都属于依赖子查询。参考博客1给出了三种方式使用场景。...现有送货单(delivery_order)和送货商品明细(delivery_sku)。很明显,一个送货单对应多个商品明细。...首次优化 查询语句中,对tenant_id、store_id和create_time等字段的限定只对sku进行了限制,而没有对送货单做限制,导致只有sku使用了索引,而送货单没能走索引。...再分析我们的业务场景:在我们的业务场景中,一个送货单对应多个商品,属于典型的一对,使用exists就可以避免使用group by或distinct,其性能肯定能好于join。.../104798190  MySQL总结(五)——Explain的坑以及如何分析SQL 6、https://segmentfault.com/a/1190000021815758 彻底搞懂MySQL索引优化

    1.3K30
    领券