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

必知必会:MyBatis 常见面试题总结

号占位符设置参数值,比如 ps.setInt(0, parameterValue),#{item.name} 取值方式为使用反射参数对象获取 item 对象 name 属性,相当于 param.getItem...2、Xml 映射文件,除了常见 select|insert|updae|delete 标签之外,还有哪些标签? 注:这道题是京东面试官面试时问。... MyBatis ,每一个、、、标签,都会被解析为一个MappedStatement对象。...其执行原理为,使用 OGNL sql 参数对象中计算表达式,根据表达式动态拼接 sql,以此来完成动态 sql 功能。...其去重复原理是标签标签,指定了唯一确定一条记录 id 列,MyBatis 根据列来完成 100 条记录去重复功能,可以有多个,代表了联合主键语意。

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

2020年,MyBatis常见面试题总结

Mybatis 技术内幕系列博客,原理和源码角度,介绍了其内部实现细节,无论是写好与不好,确实是用心写了,由于并不是介绍如何使用 Mybatis 文章,所以,一些参数使用细节略掉了,我们目标是介绍...2、Xml 映射文件,除了常见 select|insert|updae|delete 标签之外,还有哪些标签? 注:这道题是京东面试官面试时问。... Mybatis ,每一个、、、标签,都会被解析为一个MappedStatement对象。...其执行原理为,使用 OGNL sql 参数对象中计算表达式,根据表达式动态拼接 sql,以此来完成动态 sql 功能。...其去重复原理是标签标签,指定了唯一确定一条记录 id 列,Mybatis 根据列来完成 100 条记录去重复功能,可以有多个,代表了联合主键语意。

83510

mybatis框架常见注解(持续补充)

@Insert @Insert对应xml文件insert标签。插入记录时候主键如何生成?对此基本上有三种方案:手动指定(应用层)、自增主键(数据层单表)、选择主键(数据层多表)。...自增主键会使用数据库底层自增特性。 选择主键 选择主键数据层生成一个,并用这个作为主键。...@Select 查询时候稍稍有些复杂,因为查询会涉及到如何将查出来字段设置到对象上,对应xml文件select标签。...@Results 对于表字段名和对象属性名没有太大相同点并且表字段挺多情况下,应该使用ResultMap做适配。...@Param 参数标签,我们Mapper方法签名上标注参数,我们可以指定参数名称,然后注解或者xmlSQL里就可以使用我们自定义参数名称。

25340

查看Mysql执行计划

选择解释标签,就可以查看到sql执行计划了 ?...refornull:与ref 唯一区别就是使用索引引用查询之外再增加一个空查询。...如果为空,没有可能索引,可以为相关WHERE语句中选择一个合适语句 4、key 实际使用索引。如果为NULL,则没有使用索引。很少情况下,MYSQL会选择优化不足索引。...UNION:子查询UNION,且为UNION 第二个SELECT 开始后面所有SELECT,同样依赖于外部查询结果集;PRIMARY:子查询最外层查询,注意并不是主键查询;SIMPLE...:UNION 语句中第二个SELECT 开始后面所有SELECT,第一个SELECT 为PRIMARYUNION RESULT:UNION 合并结果; 8、Extra 关于MYSQL如何解析查询额外信息

3.3K10

Selenium面试题

不可以,想点击的话,可以用js去掉dispalay=none属性 NO.8 selenium如何保证操作元素成功率? 保证操作元素成功率,也就是说如何保证点击元素一定是可以点击?...如何选择?...其次是Xpath,因为很多情况下html标签属性不够规范,无法唯一定位。...如果XPath文档任意位置开始进行选择匹配,那么它将允许创建“相对”路径表达式。 例如 “// p”匹配所有的段落元素。 NO.18 什么是XPath?...假如一个文本框是一个Ajax控件,当我们输入一些文本时,它会显示自动建议。 处理这样控件,需要在文本框输入之后,捕获字符串所有建议;然后,分割字符串,取值就好了。

5.7K30

20个能够有效提高 Pandas数据分析效率常用函数,附带解释和例子

Loc 和 iloc Loc 和 iloc 函数用于选择行或者列。 loc:通过标签选择 iloc:通过位置选择 loc用于按标签选择数据。列标签是列名。...对于行标签,如果我们不分配任何特定索引,pandas默认创建整数索引。因此,行标签0开始向上整数。与iloc一起使用行位置也是0开始整数。...Nunique Nunique统计列或行上唯一条目数。它在分类特征中非常有用,特别是我们事先不知道类别数量情况下。让我们看看我们初始数据: ?...如果axis参数设置为1,nunique将返回每行唯一数目。 13. Lookup 'lookup'可以用于根据行、列标签在dataframe查找指定。假设我们有以下数据: ?...在这种情况下,简单矢量化操作(例如df*4)要快得多。 然而,某些情况下,我们可能无法选择矢量化操作。

5.6K30

Mybatis 框架

之前内容写了Java基础知识、Java Web相关知识。有这些内容就可以编写各种各样丰富程序。但是如果纯粹手写所有代码,工作量仍然很大。...上面使用内置对象时我们说它可以取任何名称,但是这里请注意 名称只能是自定义对象属性名,而且区分大小写 这里使用都是确定,如果要使用模糊查询时该如何操作呢,这里我们按照名称来模糊查询,首先在dao...1,我们可以使用 where标签来包裹这些if,表明if所有内容都是作为查询条件,这样mybatis最后会在生成查询条件后自动帮助我们进行格式整理 使用if标签我们搞定了不确定用户会使用哪些查询条件问题...这里有一个问题,多表查询,我们是否有必要一次查询出它所关联所有数据,就像之前一对多关系查询用户时是否需要查询对应账户,以及查询账户时是否需要查询它所对应用户。...account where uid = id xml配置可以collection标签中使用select属性,该属性指向一个方法,该方法功能是根据id获取所有对象列表。

66320

一条慢sql引发思考

EXPLAIN返回语句中使用每个表一行信息 SELECT。它按照 MySQL 处理语句时读取表顺序列出了输出表。...这意味着MySQL第一个表读取一行,然后第二个表中找到匹配行,然后第三个表中找到匹配行,依此类推。当所有表都处理完毕后,MySQL 输出选定列并回溯表列表,直到找到有更多匹配行表。...,显示查询每个子查询唯一标识符。...partitions:(使用 EXPLAIN PARTITIONS 时)显示查询涉及分区。 type:表示连接类型或访问类型。这是优化器选择主要算法,用于访问表行。...一些常见包括: system:表只有一行(通常是系统表),这是最快连接类型。 const:使用主键或唯一索引时,只匹配一行。 ref:使用非唯一索引来查找匹配行。

21910

Mybatis面试问题锦集

号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}取值方式为使用反射参数对象获取item对象name属性,相当于param.getItem...Mybatis,每一个、、、标签,都会被解析为一个MappedStatement对象。...其执行原理为,使用OGNLsql参数对象中计算表达式,根据表达式动态拼接sql,以此来完成动态sql功能。 8、Mybatis是如何将sql执行结果封装为目标对象并返回?...其去重复原理是标签标签,指定了唯一确定一条记录id列,Mybatis根据列来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...16、Mybatis映射文件,如果A标签通过include引用了B标签内容,请问,B标签能否定义A标签后面,还是说必须定义A标签前面?

3.1K20

【39期】Mybatis面试18问,你想知道都在这里了!

号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}取值方式为使用反射参数对象获取item对象name属性,相当于param.getItem...Mybatis,每一个、、、标签,都会被解析为一个MappedStatement对象。...其执行原理为,使用OGNLsql参数对象中计算表达式,根据表达式动态拼接sql,以此来完成动态sql功能。 8、Mybatis是如何将sql执行结果封装为目标对象并返回?...其去重复原理是标签标签,指定了唯一确定一条记录id列,Mybatis根据列来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...16、Mybatis映射文件,如果A标签通过include引用了B标签内容,请问,B标签能否定义A标签后面,还是说必须定义A标签前面?

1.3K21

MyBatis 浅入深 随笔整理

,相当于MyBatis总管,所有配置信息都会存放在它里面,MyBatis还提供了设置这些配置信息方法: (1) 可以配置文件李获取属性 (2) 通过程序直接设置 2. ...这些不同运行环境,就可以听过environments元素来配置,但是不管增加几套运行环境,都必须要明确选择出当前唯一一个运行环境。...,默认映射级别(PARTIAL)情况下: 1)若一致,即使没有做属性名和字段名匹配映射,也可以在后台获取到未匹配过属性 2)若不一致,且resultMap里没有做映射,那么就无法在后台获取并输出...Select 属性: 1)Id 命名空间中唯一标识符,可以被用来引用这条语句 由于我们常用映射方法是基于Mapper接口,所有id需跟对应接口方法名一致 2)ParameterType: 标识查询语句传入参数类型完全限定名或别名...而不需修改字段,则可以不再更新(因为有的时候update操作中使用多个if或者别的选择标签,若一部分没有执行,则导致语句末尾残留多余逗号,解决此问题) Tip: <update id="up"

1.7K30

MyBatis面试题集合,90%会遇到这些问题

号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}取值方式为使用反射参数对象获取item对象name属性,相当于param.getItem...Mybatis,每一个、、、标签,都会被解析为一个MappedStatement对象。...其去重复原理是标签标签,指定了唯一确定一条记录id列,Mybatis根据列来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...作用范围:Executor这些特点,都严格限制SqlSession生命周期范围内。 11、Mybatis如何指定使用哪一种Executor执行器?...13、Mybatis映射文件,如果A标签通过include引用了B标签内容,请问,B标签能否定义A标签后面,还是说必须定义A标签前面?

1.1K10

MyBatis 延迟加载(懒加载)一篇入门

MyBatis 延迟加载 引言 前面一篇文章,介绍了多表查询,实际使用,我们会经常性涉及到多表联合查询,但是有时候,并不会立即用到所有的查询结果,来举两个例子: 例如,查询一批笔记本电脑进货明细...,使用时候再查询才是比较合理 针对这样一种情况,延迟加载这一种机制就出现了,延迟加载(懒加载)顾名思义,就是对某种信息推迟加载,这样技术也就帮助我们实现了 “按需查询” 机制,一对多,或者多对多情况下...这次我们选择 查询账户,然后延迟加载用户信息 (1) 修改AccountMapper.xml 首先需要修改就是账户映射配置文件,可以看到我们查询时,依旧定义了一个 resultMap 先封装了...某个SQL映射文件某个select标签 id,在这里我们指定了用户通过id查询信息方法 column 是指关联用户信息查询列,在这里也就是关联用户主键即,id <mapper namespace...(); ③:进行延迟加载,调用映射文件 id 为 findById 对应 SQL配置,获取到对应用户信息 可以看到,我们之前通过使用 左外连接等 SQL书写方式,直接就可以查询到多张表 SELECT

5.7K44
领券