mybatis专场

MyBatis有哪些执行器(Executor)?

mybatis有三种执行器
第一种是不可重复利用的,每次执行都创建一下,用完就自动销毁。
第二种是可以重复利用的,在有这个执行器的时间,他直接使用,在没有这个执行器的时间他才会创建,但他不会自动销毁,可以一直使用
第三种是批量执行sql语句的的,但是他不支持事务




在mybatis中如何批量插入数据

批量插入数据的方式有很多,可以通过java代码的方式进行插入,是通过for循环的方式插入,除了通过java代码方式外还可以通过sql语句来进行批量插入



在使用mybatis中的mapper接口调用时,需要注意什么


第一:要注意路径,不要写错了
第二,要注意接口名和id名对应
第三:要注意动态传参时,参数名或者参数类型不要写错了


在mybatis中如何反回插入时的主键id

在MySQL中还是比较容易的,因为mysql有主键自增的策略,在插入之后就可以直接调用,而order不行,他没有主键自增策略,他需要模拟一大堆的东西才能实现这个插入后id获取的操作(我之前就不知道mysql主键自增的好处,因为不知道,所以我是在插入后,在查询最后一条数据的id)




介绍一下mybatis的缓存机制

mysq默认有两种缓存机制,分别是一级缓存和二级缓存,一级缓存是本地缓存,默认开启,而二级缓存需要自己手动开启




mybatis是否支持延迟加载

mybatis支持延迟加载,但是要想实现延迟加载需要一定的配置才能开启




在mybatis中,id是否可以重复

id不可以重复,因为id重复的话mybatis不知道你要调用哪一个id,但是id也可以重复,比如说在不同的xml文件里,或者给每一个方法起一个名字,名字加id,mybatis就知道你要调用哪一个了,自然id可以重复





mybatis如何实现分页?

在mybatis中有很多种分页方式
比如,一下把数据全部查出来,在list里进行分页取出
或者通过sql的方式,通过limit动态参数来分页
或者通过拦截器的方式进行分页,拦截你要分页的东西进行统一的分页处理
亦或者通过分页插件的方式老进行分页





如何给mybatis里的参数定义别名

可以通过as的方式给每个字段起别名,或者通过resmapper的方式通过实体类的方式来起别名

今天7.27号,天气晴


mybatis中#与$的区别

#是预编译处理,自动的把你所传的参数变为字符串,有效的防止sql注入
而$的方式是直接进行拼接,有可能会被有歹心的人进行sql注入攻击,比如说在你参数的后面加入一个delete 表名什么的



#面试##面试题##牛客解忧铺##2022届毕业生现状##如何判断面试是否凉了#
全部评论

相关推荐

问的很深,我对八股了解不多,被狠狠拷打byd到现在才一面,10月15号做的笔试。要是流程真的走下去不知道走到什么时候问的问题:1. 拷打项目,问的巨深,直接问怎么进行前后端设计,数据库设计,用了哪些东西,产出哪些东西。还好我是组长,勉强答出来一些,但他似乎不太满意,说正常开发流程是这样子的吗?我说,呃我们就是这么开发的。他说哦。2. Springboot为什么这么方便,可以开箱即用?我说简化了配置,有一个启动类。然后答了一堆废话,说不对,然后问启动类的逻辑怎么实现的,我说不知道。3. Mybatis你是怎么用的?说了一下使用过程,mapper,配置文件,service,serveceImpl。然后问Mybatis为什么能这么干?我说因为读取了一些配置文件,底层用jdbc,然后说了一堆废话,他说不对,现在假如要你设计一个mybatis,你会怎么写?我说就正常java的文件读写,读到配置类,做一些字符串处理,拼接成sql字符串。然后又说了一堆废话,接连被打断说不对,然后重新说,又说了一堆废话。然后问:Mybatis的bean为什么可以创建,是在什么时机创建的,为什么别的类可以用到这个bean。我说这还是启动类的问题,启动类的逻辑我不知道。4. Springboot的请求与响应逻辑是什么?我直接老四样,请求-dispatcherservlet-handlermapping-controller,以前背过类似的八股文,凭印象胡讲一通,也不知道说了什么。5. 反问环节:我有什么不足。说我简历写的不行,不能有前端开发写在里面,重点不突出,每个项目写的太多,看起来费劲总结:虽然胡讲一通,但是面试官感觉比较专业,是根据简历出题的,顺水推舟的参杂八股文。没手撕,估计要撕的话得二面。能不能过取决于他到底要不要招人
卑微小徐程序员:这确实有点深,不是单纯八股
查看8道真题和解析
点赞 评论 收藏
分享
评论
4
29
分享
牛客网
牛客企业服务