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

Java面试专题之九:Mybatis面试5个大概率被问到的问题

它与全自动的区别在哪里? Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。...有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在 resultMap 里面配置 association 节点配置一对一的类就可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的...外键 id,去再另外一个表里面查询数据,也是通过 association 配置,但另外一个表的查询通过 select 属性配置。...联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据...它的原理是,使用 CGLIB 创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是null 值,

48330

【JS】作用域(入门篇)

变量存储数据的正常流程是:先创建一个变量,然后把值存入该变量中。 但这些变量存活在哪里? 怎么读取这些变量的值? 如何修改变量的值? 在哪可以读取,哪里又不能读取?...js 的作用域规则并不像其他语言(比如 c、java 等)那么严谨,甚至很多时候还会让新手一头雾水。...所以如果声明一个对象常量,对象内的属性是可以改的,因为这样不属于修改内存地址。 点击查看 const 用法 全局作用域 在 window 下声明的变量属于全局作用域。...函数作用域 在函数内部声明的变量,属于函数作用域。在函数外是无法访问的。...所以在函数外能访问 b ,却不能访问 a 。 块状作用域 在 {} 使用 let 定义的变量 和 const 定义的常量,属于块级作用域。

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

    MyBatis常见,常用知识点

    它与全自动的区别在哪里 Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。...,根据这个表里面的结果的 外键id,再去另外一个表里面查询数据,也是通过association配置,但另外一个表的查询通过select属性配置。...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的结果的外键id,再去另外一个表里面查询数据,也是通过配置...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,再去另外一个表里面查询数据,...Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。

    2.6K20

    为什么微服务架构需要聚合

    此外,其他实体通常都是值对象 在确定属于聚合的实体时,应该查找不变量(管理不同实体交互的规则)。我们应该尽量将涉及相同不变量的实体归为一组。...过去很多年中,我们开发了一个大型的数据库模式,且到处都是外键引用。 从任意表开始跟踪所有的外键引用,都可能会遍历整个模式。...例如,当通过数据库调用检索一个Order时,应该返回多少数据?显然,Order详情包含状态、ID和下单日期。那么是否需要返回所有的Order物品?物品从哪里寄出以及寄到哪里?...所有分配的模式都是相同的,即包含相同的表,外键以及其他约束等。...假设我们缓存了一个用户对象,但同时也缓存了独立的联系信息和联系信息组,以及用户独立的对象字段。最终会需要大量内存来保存这些数据。当缓存了无效的数据时,可能会出现严重问题。

    1.5K20

    Django中的关系映射

    常见的关系映射 一对一映射:例如一个身份证对应一个人 一对多映射:例如一个班级可以有多个学生 一对多映射:例如一个学生可以报考多个课程,一个课程可由多个学生学习....') 反向查询 没有外键属性的一方,可以调用反向属性查询到关联的另一方 反向关联的属性为实例对象.引用类名(小写) 当反向引用不存在的时候,则会触发异常 当UserId类中定义了外键约束...,一个班级有多个学生,一本书只能属于一个出版社,一个出版社可以出多本书。...一对多需要明确出具体角色,在多表上设置外键 语法:当一个A类对象可以关联多个B类对象 class ClassRoom(models.Model): # 班级唯一 name = models.CharField...student_name = models.CharField("StudentName",max_length=15) # 绑定外键约束,属于那个班级 classroom

    1.7K20

    MySQL外键约束

    关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。...其中就包括外键 1 主键(primary key或unique key) 又称主码,数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。...但还是有差异: 作为primary key的域/域组不能为null;而unique key可以 在一个表中只能有一个primary key,而多个unique key可以同时存在 更大的区别在逻辑设计上...注意 : 外键不一定要与相应主键同名,只是在应用中为便于识别,当主键与相应外键属于不同关系时,往往取同名 作用 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。...然而在设置外键时,你插入表2学号字段的值必须要求在表1的学号字段能找到。 同时,如果你要删除表1的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。

    6.5K20

    YashanDB数据分区

    表可以根据某些条件进行分区,不同分区独立管理。分区表提供了更高效、更便利的数据操作方式。每个分区是一个独立的对象,拥有自己的段(Segment)和段属性,即使某个分区损坏也不影响其他分区。...list分区支持default分区,当某一行数据的分区键特征值没有落到除default分区外的分区时,该行数据就存放在default分区内。...每个分区的分区边界为当前分区的上限值(high value),分区键值属于[上一个分区的high value,当前分区high value]区间的数据属于当前分区。 支持多列分区键。...每个分区的分区边界即是当前分区可以存储的分区键键值,只有分区键键值在当前分区的数据属于当前分区。 支持多列分区键。 支持指定DEFAULT分区,不属于其他分区的数据都属于DEFAULT分区。...当插入数据的分区键值不满足当前所有分区的范围时,Interval分区表可以根据指定的interval值自动新建一个分区。

    4800

    django rest framework serializers解读

    常用的field   CharField、BooleanField、IntegerField、DateTimeField这几个用得比较多,我们把外键的field放到后面去说!...serializers 讲了那么多,终于要研究一下外键啦~ 其实,外键的field也比较简单,如果我们直接使用serializers.Serializer,那么直接用PrimaryKeyRelatedField...(queryset=CourseCategory.objects.all(), required=True) ModelSerializer就更简单了,直接通过映射就好了 不过这样只是用户获得的只是一个外键类别的...假设现在是一个多级分类的课程,例如,编程语言–>python–>python入门学习课程,编程语言与python属于类别,另外一个属于课程,编程语言类别是python类别的一个外键,而且属于同一个model...可以看到传递的参数是分别是:queryset,many=True多个对象,context上下文。

    1.8K10

    Java集合从菜鸟到大神演变

    先来看一张集合概况图,这里从上到下列举了几个最经常用的集合 1、集合接口 java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。...每个节点除含有元素外,还包含向前,向后的指针。 新建一个LinkedList,生成一个头节点(header,就是一个头指针),它的元素为null。...Vector实际上是通过一个数组去保存数据的。当我们构造Vecotr时;若使用默认构造函数,则Vector的默认容量大小是10。 当Vector容量不足以容纳全部元素时,Vector的容量会增加。...Map(映射):   Map基于散列表的实现,Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。...当新建一个HashMap的时候,就会初始化一个数组。插入和查询“键值对”的开销是固定的,可以通过构造器设置容量capacity和负载因子load factor,以调整容器的性能。

    99860

    mybatis练习题

    它与全自** 动的区别在哪里? Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合 对象时,可以根据对象关系模型直接获取,所以它是全自动的。...有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在 resultMap 里 面配置 association 节点配置一对一的类就可以完成;嵌套查询是先查一个表,根据这个表里面的结果的...外键 id,去再另外一个表里面查询 数据,也是通过 association 配置,但另外一个表的查询通过 select 属性配置。...联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先 查一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据...它的原理是,使用 CGLIB 创建目标对象的代理对象,当调用目标方法时, 进入拦截器方法,比如调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是 null

    5510

    【重学MySQL】四、关系型数据库设计规则

    主键可以是单个字段,也可以是多个字段的组合(复合主键)。主键字段的值必须是唯一的,且不允许为空。 外键约束:在需要表示表之间关联关系时,可以使用外键。...在这种关系中,一个表的主键对应另一个表的外键。 示例: “顾客”表与“订单”表:一个顾客可以有多个订单,但每个订单只属于一个顾客。...“部门”表与“员工”表:一个部门可以对应多个员工,但每个员工只属于一个部门。...实现关联关系的要点 主键与外键:在建立关联关系时,通常将一个表的主键作为另一个表的外键。外键是一个指向另一个表中主键的列,用于建立两个表之间的关系。...索引可以加快数据检索的速度,特别是在处理大量数据时。 数据完整性:关联关系还有助于维护数据的完整性和一致性。通过外键约束,可以确保在插入、更新或删除数据时不会破坏表之间的关联关系。

    8410

    数据库系统与数据挖掘的区别_数据挖掘与大数据的关系

    它与表格中术语可以一一对应。还有,关系中属性个数称为元数,元组个数为基数。 键:由一个或几个属性组成。(注意键不一定是唯一的一个属性)。 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。...但是注意当查询涉及到否定或全部值时,就不能用上述形式,而要用到差或除法操作。...如有一些对象:”老师,课程,班级,上课时间”,通过聚集可以得到一个联系对象”课程表”。聚集表示的是”is_part_of”的关系。 概括:是从一类其他对象形成一个对象。...但是注意当查询涉及到否定或全部值时,就不能用上述形式,而要用到差或除法操作。...如有一些对象:”老师,课程,班级,上课时间”,通过聚集可以得到一个联系对象”课程表”。聚集表示的是”is_part_of”的关系。 概括:是从一类其他对象形成一个对象。

    1.2K60

    数据仓库专题(10)-文本事实和杂项维度

    一张事实表中可能会存在好几个类似的字段,如果作为事实存放在事实表中,会导致事实表占用空间过大;如果单独建立维度表,外键关联到事实表,会出现维度过多的情况;如果将这些字段删除,会有人不同意。...这 时,我们通常的解决方案就是建立杂项维度,将这些字段建立到一个维度表中,在事实表中只需保存一个外键。几个字段的不同取值组成一条记录,生成代理键,存 入维度表,并将该代理键保存入相应的事实表字段。...当遇到文本型的事实时,我们首先要考虑的应该是这个事实是否属于某个维度表。例如,客户类型标识出每个客户的一个值,应该属于客户维度表。...如果事实不属于已存在的任何一个维度表,我们可以为它们建立单独的维度表或者整合成杂项维度表(Junk Dimension)。建立单独的小维度表是比较容易的方式,但是为增加事实表中的外键个数。...如果建立了杂项维度记录过多,可以考虑拆分成独立的维度或者其他杂项维度。 3.从业务规则角度讲,杂项维度中的不同属性应该是不相关的,以免引起误解。如果相关的话,最好不要建立成杂项维度。

    1.3K20

    Hibernate多表关系配置

    多对多(一个老师教多个学生,一个学生可以被多个老师教) 一对一(一个公司只能对应一个注册地址) 表之间关系建表原则 一对多(在多的一方创建一个外键,指向一的一方的主键) 多对多(创建一个中间表,中间表至少有两个字段...属性关系中的外键即另一个表的外键字段名,还有一个标签one-to-many写上另一表的domain类全路径。...),删除也是先去掉外键再删除。...但是实际上会报错——瞬时对象异常 这是因为保存的对象关联了处于瞬时态的对象 我们可以在配置文件中去开启级联操作 在哪个配置文件去开启,就在它对应的domain保存时才有级联 在Classes的映射文件去添加...,当classes移除一个学生,那么student表会变 还有删除,当删除一个班级,那么student表中属于这个班的student也会全删掉 cascade="delete" 4 多对多配置 配置和一对多一样

    73420

    接口的所有权之争

    图1 图1的设计中,Switch 对象可以轮询真实的开关的状态 ,并且可以发送相应的turnOn 和turnOff 消息给Light。这个设计不好在哪里?...不能容易的扩展Switch 去管理除Light外的其他对象。 作者提出了简单的设计模式Abstract Server模式,如图2。模式也许没有听过,但一定这样用过。...那么IDAL接口层的所有权属于谁的?以前一直有这个疑问直到看到这一章疑问解决了。通常认为IDAL接口层属于DAl层,那是不对的。这里的IDAL接口的所有权是属于BLL层了。...如果SPI可以做为上下游的接口标准,那么可以由它们来实现。如果做不到,这个SPI 由系统内部自己去实现,只有实现是依赖到三方接口的,这样如果三方接口有替换,我们可以用新的实现去扩展就好了。...结论: 接口所有权属于它的客户,这里的所有权指逻辑关系和打包和发布。由客户模块或者层来声明它们所需要的服务接口,那么仅当客户需要时才会对接口改变。这样改变实现抽象接口的类就不会影响到客户。

    48710

    ES6之原始数据类型Symbol

    它属于 JavaScript 语言的原生数据类型之一,其他数据类型是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、大整数(BigInt)、对象(...Symbol的作用是创建一个不可变且唯一的标识符,可以用作对象属性的键。它可以用来解决属性名冲突的问题,避免命名冲突。概述--symbol 是一种基本数据类型。...Symbol.iterator:当使用for...of循环遍历一个对象时,JavaScript引擎会查找该对象是否有一个Symbol.iterator方法。...Symbol.toStringTag:当调用对象的toString()方法时,JavaScript引擎会检查该对象是否有一个Symbol.toStringTag属性。...Symbol.hasInstance:当使用instanceof操作符检查一个实例是否属于某个类时,JavaScript引擎会查找这个类是否有一个静态方法[Symbol.hasInstance]。

    21870

    云成本管理方法论(三)——云优化管理之判定规则

    云优化管理四个管理维度中管理时点在通用管理模型基础上不需要额外补充,所以主要说明其他三个维度(管理对象、判定规则和管理措施)。...组合关系中代表部分的资源只从属于此组合关系中代表整体的资源,而不能同时作为其他资源的部分资源。比如,虚机与存储卷具有组合关系,一个存储卷不能同时与多个虚机形成关联关系。...[强制关联] 外键关联 —— 关联资源中关联属性如果不为空,则其对应的被关联资源必须存在(未被销毁)。如存储卷与虚机之间是外键关联,即如果存储卷的虚机 ID 不为空,则此虚机必须存在。...[外键关联] 快照关联 —— 快照关联是一种特殊的强制关联,但不是外键关联。快照关联中关联资源是快照,被关联资源是快照的来源资源。我们也可以将快照关联中的关联资源称为快照资源,将被关联资源称为源资源。...需要明确的是,真实的资源之间具体应属于哪种关系是由其功能特征决定的,是固有的,所以对这些关系本身我们并没有办法去改进或优化。但是,我们可以对其关系状态进行优化。

    1.8K210

    软件方法(下)第8章分析之分析类图—知识篇Part09-审查类和属性1

    要特别说明的是,习惯于关系数据库建模的建模人员有时会犯这样的错误,在一个类里放上另外一个类的属性作为“外键”。...图8-74 不需要“编码”作为“外键” “人员”里放“组织编码”不合适,放一个无意义的标识“组织ID”呢?同样也不可以。...因为这个“组织ID”是“组织”的标识,前文已经说了,标识属性此时不需要存在,所以“组织ID”在“组织”里不存在,更不要说放到其他类中作为“外键”了。...图8-75 不需要“ID”作为“外键” 在设计工作流,需要把类图映射到关系数据库时,确实需要把"组织"表的主键(可能是"编码"也可能是生成的代理主键)放在"人员"表中作为外键,但正如上文所说,这同样是另一个领域的知识...属性如果放在了错误的类,极有可能会导致大量不同对象的某些属性值相同,而这也可以反过来思考,当发现大量不同对象有相同属性值时,可以检查一下,是否有属性放在了错误的类。

    36420
    领券