当前位置: 首页 > 编程日记 > 正文

Mybatis常见面试题(三)

Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问, B 标签能
否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
:虽然 Mybatis 解析 Xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以
定义在任何地方, Mybatis 都可以正确识别。原理是, Mybatis 解析 A 标签,发现 A 标签引
用了 B 标签,但是 B 标签尚未解析到,尚不存在,此时, Mybatis 会将 A 标签标记为未解
析状态,然后继续解析余下的标签,包含 B 标签,待所有标签解析完毕, Mybatis 会重新
解析那些被标记为未解析的标签,此时再解析 A 标签时, B 标签已经存在, A 标签也就可
以正常解析完成了。
Mybatis Xml 映射文件中,不同的 Xml 映射文件, id 是否可以重复?
不同的XML文件,如果配置了namespace,那么id可以重复,如果没有篇日志namespace,那么id不能重复,

比较namespace不是必须的,只是最佳实践而已,原因就是namespace+id是作为Map<String,MappedSrarement>的key使用的

,自然id就可以重复,namespace不同,namespace+id自然也就不同。

Mtbatis中如何处理批执行?

:使用BatchExecutor完成批处理。

Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
:Mybatis中有三种Executor执行器,SimpleExectuor,ReuseExecutor,BatchExecutor。

1.SimpleExecutor:每执行一次update或者select,就开启一个Statement对象,用完like关闭Statement对象。

2.ReuseExecutor:执行update或者select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,

不关闭Satement对象,二十放置于Map

3.BatchExecutor:完成批处理。

Mybatis 中如何指定使用哪一种 Executor 执行器?
在Mybatis配置文件中,可以指定默认的ExectorType执行器类型,也可以手动给DefaultSqlSessionFactory的创建SqlSession的方法传递ExecutorType类型参数。

Mybatis执行批量插入,能返回数据库主键列表吗?

:可以,JDBC可以,Mybatis也可以。

Mybatis 是否可以映射 Enum 枚举类 ?
:Mybatis可以映射枚举类,不单可以映射枚举类,Mybatis可以映射任何对象到表的一列上。

映射方式为自定义一个TypeHandler,实现TypeHandler的setParameter()和getResulr()接口方法。

TypeHandler有两个作用,意识完成从javaType至getResult()两个方法,分别代表设置sql问号占位符参数和获取列查询结果。

如何获取自动生成的()键值?
:配置文件设置usegeneratedkeys为true。

在Mapper中如何传递多个参数?

1)直接在方法中传递参数, xml 文件用#{0} #{1}来获取
2)使用 @param 注解:这样可以直接在 xml 文件中通过#{name}来获取
resultType resultMap 的区别?
1.类的名字和数据库相同时,可以直接设置resultType参数为pojo类。

2.若不同,需设置resultMap将结果名字和pojo名字进行转换。

使用 MyBatis mapper 接口调用时有哪些要求?
1.Mapper接口方法名和mapper.xml中定义的买个sql的id相同。

2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同。

3.Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

4.Mapper.xml文件中的namespace即是接口的类路径。

Mybatis IBatis 比较大的几个改进是什么?
1.有接口绑定,包括注解绑定sql和xml绑定sql。

2.动态sql由原来的节点配置改为OGNL表达式

3.在一对一,一对多的时候引进了association,在一对多的时候引入了collection节点,

不过都是在resultMap里面配置

IBatis MyBatis 在核心处理类分别叫什么?
:IBatis里面的核心处理类叫SqlMapClient,Mybatis里面的核心处理类叫做SqlSession。

IBatis MyBatis 在细节上的不同有哪些?
1.在sql里面变量命名由原来的#变量#,变成了#{变量}

2.原来的$变量$,变成了${}

3.原来在sql节点里面的class都换名字叫type

4.原来的queryForObject queryForList 变成了selectOne selectList

5.原来的别名设置在映射文件里面放在了核心配置文件里。

转载于:https://www.cnblogs.com/dayandday/p/10838350.html

相关文章:

SMI in SNMP

SNMP中&#xff0c;数据类型并不多。这里我们就讨论这些数据类型&#xff0c;而不关心这些数据类型在实际中是如何编码的。INTEGER一个变量虽然定义为整型&#xff0c;但也有多种形式。有些整型变量没有范围限制&#xff0c;有些整型变量定义为特定的数值&#xff08;例如&am…

Java项目:在线拍卖竞价系统(java+SpringBoot+FreeMarker+Mysql+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 超级管理员&#xff1a;系统管理、用户管理&#xff08;冻结等&#xff09;、审批竞拍标的物管理、竞标类型管理、审批机构、个人提现管理&#xff08;审核&#xff09;、企业提现管理&#xff08;审批&…

pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)

pig 脚本运行不需要后缀名 pig脚本名为tempfile&#xff0c;无后缀名 用pig -f tempfile 可直接运行 另外&#xff0c;pig tempfile也可以直接运行这样就可以用python临时文件存储pig脚本内容直接调用 python调用pig脚本的一种方式 将pig脚本用任意文件存储&#xff0c;执行时写…

老谢oracle视频笔记_day02

1:databasea:physical structure1:controlfile控制文件select * from v$controlfile;11g 以三个11g二个互为镜像文件坏了数据库就打不开了..IO一个块 16k一个文件2MB不会太大?10MB数据库名数据文件位置很多的参数.....2:datafile 数据文件select file_name,file_id from dba_d…

WCDMA系统中的扰码规划

摘要&#xff1a;宽带码分多址(WCDMA)系统采用码分多址的无线接入方式&#xff0c;不需频率规划&#xff0c;但需进行相邻小区扰码的规划用以区分各小区。通过WCDMA无线网络的扰码规划&#xff0c;可以确定两个使用相同扰码的小区的复用距离&#xff0c;区分各小区。扰码规划时…

Java项目:宿舍寝室维修上报管理系统(java+SpringBoot+FreeMarker+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 管理员&#xff1a;校园管理&#xff08;楼栋管理、宿舍管理&#xff09;、师生管理&#xff08;学生管理、辅导员管理&#xff09;、维修管理&#xff08;维修工管理、维修进度管理&#xff09;、阅览室管理…

项目需求分析与建议

软件名称&#xff1a;私人助手 1.N(需求)&#xff1a;当今生活节奏迅速&#xff0c;每个人每天都有许多事情要做&#xff0c;堆积成山的事情往往让人感到迷茫&#xff0c;不知道什么时候要做什么事情。私人助手就是为了解决这个烦恼而产生&#xff0c;它会根据最初你添加的事物…

使用面向 iOS 的本机插件扩展 PhoneGap

本文细致探讨了 Xcode&#xff08;以 iOS 设备为目标&#xff09;中的 PhoneGap&#xff08;也称为 Apache Cordova&#xff09;应用程序本机插件。如果您刚开始接触 PhoneGap 或者需要回顾 PhoneGap 基础知识&#xff0c;请先阅读 Xcode for iOS 的 PhoneGap 入门&#xff0c;…

算法总结---最常用的五大算法(算法题思路)

算法总结---最常用的五大算法&#xff08;算法题思路&#xff09; 一、总结 一句话总结&#xff1a; 【明确所求&#xff1a;dijkstra是求点到点的距离&#xff0c;辅助数组就是源点到目标点的数组】 【最简实例分析&#xff1a;比如思考dijkstra&#xff1a;假设先只有三个点】…

软切换中的测量

软切换中的测量 同频测量&#xff1a; CPICH RSCP、Ec/N0, 事件触发报告&#xff0c;1A,...,1F 1A&#xff0c;相对门限增加事件&#xff0c;表示一个小区的质量已经接近最好小区或者活动集质量 1B&#xff0c;相对门限删除事件&#xff0c;表示一个小区…

测试与封装5.1.5.2

1.第一阶段目标 - 把计算的功能封装成类。2.设计测试用例&#xff1a;用白盒与黑盒测试设计技术&#xff0c;为计算核心设计测试用例。3.在实验环境中&#xff08;如MyEclipse集成开发环境Junit测试框架&#xff09;运行测试用例&#xff0c;分析测试结果&#xff0c;找出程序问…

Java项目:企业员工绩效工资管理系统(java+SpringBoot+FreeMarker+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 超级管理员等角色&#xff0c;除基础脚手架外&#xff0c;实现的功能有&#xff1a; 超级管理员&#xff1a;系统管理、用户管理&#xff08;冻结等&#xff09;、职称管理、部门管理&#xff08;工资项&am…

Sql server 阻塞定位

很多人都遇到过这样的情况&#xff0c;当网站达到一定的访问量&#xff0c;数据库就会成为瓶颈&#xff0c;进而引起阻塞。有人认为这可能就是硬件的极限了&#xff0c;于是想办法增加硬件设备。而我本人认为问题的元凶可能是性能不高的sql脚本&#xff0c;引起了阻塞。如果你和…

基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案...

我们通常在构架一套视频SaaS应用的过程中&#xff0c;将平台设计为3层&#xff1a;视频硬件层&#xff08;视频源&#xff09;、视频能力平台&#xff08;vPaaS&#xff09;、视频应用平台&#xff08;vSaaS&#xff09;&#xff0c;视频硬件包括各种IPC、NVR、编码器等视频生成…

active set + serving cell

空闲态&#xff1a;这时候手机只能使用一路信号&#xff0c;应该是最强的那一路。手机在空闲态时不断地搜索各个导频的强度&#xff0c;如果搜到比当前使用的导频更强的&#xff0c;那么它就自发的进行切换。这个切换的过程是手机自发的过程&#xff0c;不需要基站的参与。业务…

Java项目:医院分诊挂号住院管理系统(java+SpringBoot+FreeMarker+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 主要实现了从挂号预约到分诊住院出诊等一些列医院基本操作流程的全部功能&#xff0c;系统分医生、患者、管理员三个角色&#xff0c;除基础脚手架外&#xff0c;实现的功能有&#xff1a; 管理员&#xff…

网站压力测试工具webbench

webbench最多可以模拟3万个并发连接去测试网站的负载能力&#xff0c;个人感觉要比Apache自带的ab压力测试工具好&#xff0c;安装使用也特别方便。  1、适用系统&#xff1a;Linux  2、编译安装&#xff1a; 引用wget http://blog.zyan.cc/soft/linux/webbench/webbench-1…

运维人员处理云服务器故障的方法总结

2019独角兽企业重金招聘Python工程师标准>>> 我们团队为Ucloud云计算服务提供专家技术支持,每天都要碰到无数的用户故障,毕竟IAAS涉及比较底层的东西,不管设计的是大客户也好还是小客户,有了问题就必须要解决,也要要是再赶上修复时间紧、奇葩的技术平台、缺少信息和…

玉米田Corn Fields

传送门 #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> using namespace std; #define ll long long #define re register const int mod1e8; void read(int &a) {a0;int d1;char ch;while(chgetchar(),ch>9||ch…

Java项目:酒店管理系统(java+Springboot+Mybatis+Beetl+Layui)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 此系统用的是springboot框架&#xff0c;前端框架主要用的是layui&#xff0c;表格用的bootstrap 表格&#xff0c;都是一些主流的框架&#xff0c;前端模板引擎用的是beetl&#xff0c;操作简单&#xff0c…

word导入中的一个乱码

2019独角兽企业重金招聘Python工程师标准>>> 在做一个题库的项目中,需要将word中的试题导入到数据库中,中间过程真是坎坷,且不说word中的公式,图片等等格式,还有凌乱的排版,还有一些不明觉厉的乱码; 由于PHP暂时不能胜任,所以使用了C#开发了一个客户端来导入,时间很…

Eclipse中git检出、更新、提交、合并分支、以及解决冲突

一、、检出git代码 在eclipse中空白区域右键 Import 检出项目&#xff1b;选择git方式检出 选择用git urI 链接的方式检出项目并点击继续 在这里填写你的git项目地址、账号密码 二、更新 1、先更新 "远程服务器 --> 本地服务器"&#xff0c;再进行 更新 " 本…

Cell select

WCDMA系统的小区重选采用R准则&#xff0c;适用于同频、异频和异系统的小区重选。UE在空闲模式下&#xff0c;要随时监测当前小区和邻区的信号质量&#xff0c;以选择一个最好的小区提供服务&#xff0c;这就是小区重选过程&#xff08;cell reselection&#xff09;。而切换是…

Java项目:茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 这是一个应用SSM框架的项目&#xff0c;前端页面整洁清晰。该系统有两个角色&#xff0c;一个是普通用户&#xff0c;另一个是管理员。 普通用户具有注册、登录、查看商品、添加购物车、添加商品收藏、下订…

SOAP消息的传递

上一篇说了SOAP消息的创建&#xff0c;那么创建好了的SOAP消息要怎么发送给服务端呢&#xff1f; public class SoapTest {private String wsdlUri "http://localhost:9999/ns?wsdl";private String ns "http://lenve.server/";Testpublic void test3()…

mfc---手动给toolbar按钮添加消息View中

手动给toolbar按钮添加消息View中&#xff1a; .h&#xff1a; afx_msg void OnButtonBG(); .cpp: ON_COMMAND(ID_BUTTON_BG,OnButtonBG) .cpp: void OnButton()转载于:https://www.cnblogs.com/xiaoxiaocaicai/p/3595290.html

费马小定理求素数

/*---------------------------------------------------费马小定理:如果n是一个素数&#xff0c;a是小于n的任意正整数&#xff0c;那么a的n次方与a模n同余。(俩个数称为模n同余&#xff0c;如果它们除以n的余数相同。数a除以n的余数称为a取模n的余数&#xff0c;或简称为a取模…

Java项目:垃圾分类查询管理系统(java+SSM+jsp+MySQL+bootstrap)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; jspssm&#xff08;springspringmvcmybatis&#xff09;mysql实现的垃圾分类查询管理系统: 系统主要实现的功能有&#xff1a; 1&#xff1a;前端垃圾分类查询&#xff0c;前端采用bootstrap框架&#xff…

适合所有尺寸打印马赛克

CGFloat width 40;CGFloat height 40;//获取屏幕宽高//获取屏幕对象UIScreen *screen [UIScreen mainScreen];//获取屏幕大小CGRect screenFrame [screen bounds];//单独取出屏幕的宽高 // CGFloat screenWidth screenFrame.size.width;CGFloat screenWidth CGRectGet…

MVC使用Flash来显示图片

Insus.NET实现一些网站模版&#xff0c;如用户能动态变更网站的头&#xff0c;中间或是脚的部位&#xff0c;就是不太确定用户上传的是图片&#xff0c;还是Flash。因此想到一个较好的解决方法&#xff0c;就是使用Flash的组件去显示来源的图片或是.swf文件。这样的话&#xff…