首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-25 10:44
米哈游_构建开发(实习员工)
百度提前批一面:面试官居然让我手撕两数之和???最奇幻的一轮面试,结束还说.......
太过于玄幻的一次面试经历了。。。。基本信息:bg9本,两端实习经历,一段游戏大厂,一段小厂后端。面的是百度后端的职位。上来先是自我介绍,然后然后问了我在实习的经历,鼠鼠我就开始念经把自己觉得有技术深度的说了一下。然后问我的比赛的经历,由于是C++开发所以问了关于是如何实现算法的,然后我说了一大堆介绍路径规划的内容。接下来是问比赛团队协作的问题,团队是如何沟通的,我是承担一个怎样的角色等等常规问题。紧接着就是八股盛宴:常见的数据结构是什么,分别介绍;图结构的特点,迪丽斯克雷算法是做什么的如何实现的;什么是面向对象,有什么特征;Redis的内存淘汰和策略是什么;进程和线程的区别是什么;这些八股都挺...
黑皮白袜臭脚体育生:
两数之和都来了,判你赢得了
查看14道真题和解析
点赞
评论
收藏
分享
07-23 12:49
长安大学 产品经理
小米提前批——7.23(完)
一面:非技术问题:“实习中遇到的最大挑战及解决过程?”“能否接受实习?为何选择小米?”“分析抖音火爆原因”(考察产品思维)技术开放性:对推荐系统召回/排序阶段的技术理解自动驾驶领域的技术趋势看法智力题:烧绳子计时(考察逻辑思维)
查看6道真题和解析
点赞
评论
收藏
分享
06-12 16:52
滇西科技应用技术大学 招聘专员
求大佬帮帮忙
25届应届毕业生,求offer
下北澤大天使:
你是我见过最美的牛客女孩😍
点赞
评论
收藏
分享
07-24 16:03
4399_产品经理(准入职员工)
4399游戏内推
4399游戏PM笔试题目:请列举当前游戏行业中三种热门的游戏类型,并分析其各自的用户群体特点和市场趋势。你认为未来游戏行业的发展方向有哪些?请结合技术发展和用户需求变化进行阐述。选择一款你熟悉的 4399 游戏,分析其核心玩法、优势以及存在的不足,并提出改进建议。以《王者荣耀》为例,分析其在社交互动方面的设计亮点,以及这些设计对游戏用户留存和活跃度的影响。请设计一款以 “古代神话” 为主题的 4399 小游戏,阐述其核心玩法、主要关卡设计和角色设定。假设要为 4399 平台开发一款面向小学生的教育类游戏,你会如何设计游戏的功能和玩法,以实现教育与娱乐的平衡?给出一组 4399 某款游戏的用户数...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
大模型应用开发面经 (5年经验)
3.2W
2
...
实习都是CRUD怎么包装
5534
3
...
滴滴提前批
5015
4
...
【07.29更新】能救一个是一个!26届毁意向毁约裁员黑名单
3911
5
...
百度提前批一面(秋招第一场也估计是压力最大的)
3566
6
...
秋招首凉-腾讯TEG 云架构平台提前批
3298
7
...
团孝子启动ing!
2883
8
...
字节懂车帝 后端实习一面
2282
9
...
26滴滴秋招提前批Java一面
1615
10
...
27双非百度offer timeline
1486
创作者周榜
更多
正在热议
更多
#
26届的你,投了哪些公司?
#
12229次浏览
156人参与
#
我对___祛魅了
#
22631次浏览
229人参与
#
中兴秋招
#
190662次浏览
2140人参与
#
工作中哪个瞬间让你想离职
#
42182次浏览
363人参与
#
你跟室友的关系怎么样?
#
2276次浏览
51人参与
#
如何快速融入团队?
#
8300次浏览
103人参与
#
简历上的经历如何包装
#
8778次浏览
255人参与
#
通信/硬件求职避坑tips
#
85850次浏览
868人参与
#
你最讨厌面试问你什么?
#
8476次浏览
140人参与
#
和同事相处最忌讳的是__
#
11259次浏览
121人参与
#
你遇到最难的面试题目是_
#
3070次浏览
65人参与
#
什么样的背景能拿SSP?
#
12880次浏览
106人参与
#
字节跳动工作体验
#
457896次浏览
4622人参与
#
我和mentor的爱恨情仇
#
61528次浏览
377人参与
#
元戎启行求职进展汇总
#
35726次浏览
275人参与
#
应届生进小公司有什么影响吗
#
85347次浏览
1053人参与
#
大疆今年的机械笔试难吗?
#
43579次浏览
477人参与
#
打工人的精神状态
#
66580次浏览
1099人参与
#
实习生活中那些难忘的瞬间
#
162503次浏览
2419人参与
#
你认为工作的意义是什么
#
161325次浏览
1068人参与
#
职场常用语录大全
#
6032次浏览
42人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务