首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
ikun真的很困
桂林电子科技大学 后端
发布于广西
关注
已关注
取消关注
@养鱼吗:
面试官:小伙子你来介绍一下MyBatis
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。 Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。 总之,Mybatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决JDBC将结果集封装为Java对象的麻烦。 下图是MyBatis架构图: (1)mybatis-config.xml是Mybatis的核心配置文件,通过其中的配置可以生成SqlSessionFactory,也就是SqlSession工厂 (2)基于SqlSessionFactory可以生成SqlSession对象 (3)SqlSession是一个既可以发送SQL去执行,并返回结果,类似于JDBC中的Connection对象,也是Mybatis中至关重要的一个对象。 (4)Executor是SqlSession底层的对象,用于执行SQL语句 (5)MapperStatement对象也是SqlSession底层的对象,用于接收输入映射(SQL语句中的参数),以及做输出映射(即将SQL查询的结果映射成相应的结果) 为什么要使用MyBatis 思考:在开始之前,思考下如何通过JDBC查询Emp表中的所有记录,并封装到一个List集合中返回。(演示:准备数据、导包、导入JDBC程序) 1、使用传统方式JDBC访问数据库: (1)使用JDBC访问数据库有大量重复代码(比如注册驱动、获取连接、获取传输器、释放资源等); (2)JDBC自身没有连接池,会频繁的创建连接和关闭连接,效率低; (3)SQL是写死在程序中,一旦修改SQL,需要对类重新编译; (4)对查询SQL执行后返回的ResultSet对象,需要手动处理,有时会特别麻烦; 2、使用mybatis框架访问数据库: (1)Mybatis对JDBC对了封装,可以简化JDBC代码; (2)Mybatis自身支持连接池(也可以配置其他的连接池),因此可以提高程序的效率; (3)Mybatis是将SQL配置在mapper文件中,修改SQL只是修改配置文件,类不需要重新编译。 (4)对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。 总之,JDBC中所有的问题(代码繁琐、有太多重复代码、需要操作太多对象、释放资源、对结果的处理太麻烦等),在Mybatis框架中几乎都得到了解决!! 下面是一些面试常见题,希望可以帮助到需要的小伙伴们 1、什么是Mybatis? 2、Mybaits的优点? 3、MyBatis框架的缺点? 4、MyBatis框架适用场合 5、MyBatis与Hibernate有哪些不同? 6、#{} 和${}的区别是什么? 7、当实体类中的属性名和表中的字段名不一样,怎么办? 8、 模糊查询like语句该怎么写? 9、通常一个Xml映射文件,都会写一个Dao接口与之对应, 请问,这个Dao接口的工作原理是什么?Dao接口里的方法, 参数不同时,方法能重载吗? 10、Mybatis是如何进行分页的?分页插件的原理是什么? 11、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 12、 Mybatis如何执行批量操作 13、如何获取自动生成的(主)键值? 14、在mapper中如何传递多个参数? 15、Mybatis动态sql有什么用?执行原理?有哪些动态 sql? 16、Xml映射文件中,除了常见的select|insert|updae|delete 标签之外,还有哪些标签? 18、为什么说Mybatis是半自动ORM映射工具?它与全动的区别在哪里? 19、 一对一、一对多的关联查询 ? 20、MyBatis实现一对一有几种方式?具体怎么操作的? 21、MyBatis实现一对多有几种方式,怎么操作的? 22、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么? 23、Mybatis的一级、二级缓存: 24、什么是MyBatis的接口绑定?有哪些实现方式? 25、使用MyBatis的mapper接口调用时有哪些要求? 26、Mapper编写有哪几种方式? 27、简述Mybatis的插件运行原理,以及如何编写一个插件? 28、传统JDBC开发存在什么问题? 29、JDBC编程有哪些不足之处,MyBatis是如何解决的? 30、MyBatis编程步骤是什么样的? 31、请说说MyBatis的工作原理? 32、MyBatis的功能架构是怎样的? 33、MyBatis的框架架构设计是怎么样的? 34、什么是DBMS? 35、为什么需要预编译? 36、Mybatis都有哪些Executor执行器?它们之间的区别是什么? 37、Mybatis中如何指定使用哪一种Executor执行器? 38、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么? 如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论, 收藏 等于白嫖,点赞才是真情。
点赞 19
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
今天 09:26
已编辑
华中科技大学 后端
从实习到秋招最后春招的十三个月
终于在四月的最后两天拿到了拼多多和腾讯的offer,回想找实习的处处碰壁和秋招的颗粒无收,心中的心酸只有经历过的人懂。从2024年3月开始找实习到2025年4月彻底结束找工作,整整十三个月,没有睡一个好觉。但是,我要感谢byd,如果没有byd,我不知道这几个月我要怎么度过,没有国产品牌的崛起就没有我们的高薪工作。后端开发:实习》》》》》》》》》学历>论文实习、秋招和春招只投后端开发BG:2本9硕实习:大厂很自然的颗粒无收,在多家小厂辗转腾挪啥也没学到,甚至能写进简历的东西都没有,最后简历里只能硬着头皮放WebServer和字节青训营。学弟学妹们,如果你们的bg和我差不多,那就千万别去小厂...
投递比亚迪等公司10个岗位 >
春招启动,你开始投递了吗?
一句话证明你在找工作
点赞
评论
收藏
分享
昨天 13:40
中国科学院大学 Java
快手一面二面已offer,爱你手子
整体快手流程走的不算慢面试官也挺温和,好评,感觉整体面试比较融洽,HR感觉对我意向也挺大,薪资也挺到位。一面 60min1.自我介绍2.介绍项目,中间穿插了几个小问题。3.提到了BlockingQueue,讲一下原理4.Spring特性,Ioc和AOP。5.线程池使用流程,主要参数6.状态模式、策略模式7.mysql 隔离级别 以及 mvcc + 锁8.缓存穿透、缓存击穿、缓存雪崩 场景描述以及解决方案9.redis查一个key,客户端提交到服务端之后,对应的数据是否一定在当前节点上?10.CMS原理,是否进行标记压缩11.jdk、json、hessian等序列化器有什么区别,为什么jdk的序...
快手开奖123人在聊
查看30道真题和解析
java面筋八股大全
点赞
评论
收藏
分享
04-11 21:31
四川大学 Java
美团还招这呢
野猪不是猪🐗:
(ja)va学弟这招太狠了
点赞
评论
收藏
分享
04-29 17:42
门头沟学院 硬件开发
神人hr
坐两小时地铁结果面试十分钟结束,你没事吧😅😅😅
ldf李鑫:
不说公司名祝你以后天天遇到这样的公司
点赞
评论
收藏
分享
04-27 11:46
海康威视_算法研发部_AI算法工程师(准入职员工)
海康内推-海康内推码
岗位:武汉 嵌入式开发timeline:8.30 测评,10.9 一面,10.11 二面一面技术:自我介绍讲下实习经历平常怎么debug项目中有没有遇到什么问题,怎么解决的介绍一下学校经历了解数据结构吗?基本的数据结构?查找搜索效率?有什么方法可以提高效率?具体围绕数据结构问了很多RTOS,多任务操作反问:做存储固件的,具体的进来再分二面HR:北京线下,地点在北京研发中心,具体内容就是唠家常,一些HR面的基本问题销售工程师工作体验,总结累但成长很多。1.大家最先关注的就是HIK的工作压力,只能说体面厂没有辜负盛名!名不虚传!我来这边是销售岗,基本上每天都要差不多11点下班。因为销售不仅需要对接...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
暑期后端高频问题汇总
7.3W
2
...
左手敲代码的程序员,不配拥有offer吗?
5.8W
3
...
想听实话吗,校招ssp聊聊大厂客户端
3.1W
4
...
大连某小区保安一面
2.7W
5
...
北京到底有谁在啊?
8869
6
...
后端简历上最值得写的项目
8153
7
...
五一假期,弯道超车时间表
7627
8
...
暑期实习终章
6897
9
...
五一准备刷完这些面试八股题!!
6068
10
...
五一别写你那破开源代码了
6006
创作者周榜
更多
正在热议
更多
#
找工作,行业重要还是岗位重要?
#
6849次浏览
85人参与
#
设计人如何选offer
#
97922次浏览
680人参与
#
五一之后,实习真的很难找吗?
#
44398次浏览
312人参与
#
领导秒批的请假话术
#
9630次浏览
73人参与
#
盲审过后你想做什么?
#
12315次浏览
108人参与
#
考研可以缓解求职焦虑吗
#
20522次浏览
242人参与
#
五一假期,你打算“躺”还是“卷”?
#
25921次浏览
398人参与
#
面试等了一周没回复,还有戏吗
#
115222次浏览
1072人参与
#
你喜欢工作还是上学
#
37344次浏览
408人参与
#
牛友们的论文几号送审
#
27149次浏览
623人参与
#
应届生薪资多少才合理?
#
3047次浏览
24人参与
#
找工作前vs找工作后的心路变化
#
7111次浏览
64人参与
#
如何缓解入职前的焦虑
#
171679次浏览
1267人参与
#
每人推荐一个小而美的高薪公司
#
72819次浏览
1357人参与
#
如果有时光机,你最想去到哪个年纪?
#
43195次浏览
765人参与
#
硬件人,你被哪些公司给挂了
#
46483次浏览
719人参与
#
写简历别走弯路
#
714102次浏览
7849人参与
#
大疆的机械笔试比去年难吗
#
69567次浏览
602人参与
#
扒一扒那些奇葩实习经历
#
41573次浏览
770人参与
#
材料专业哪个方向更好找工作?
#
18068次浏览
89人参与
牛客网
牛客企业服务