MyBatis(面试)


一、MyBatis简介


01、MyBatis是什么?

MyBatis是一个持久层框架,半自动ORM(对象关系映射)框架,支持:定制化SQL、存储过程以及高级映射、MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,MyBatis可以使用简单的XML或注解类配置和映射原生类型,接口、及其Java的POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。


02、ORM是什么?

ORM(Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库与简单Java对象(POJO)的映射关系技术,简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中


03、为什么说MyBatis是半自动 ORM映射工具,它与全自动的区别在哪里?

  • Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象(或者)关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
  • MyBatis在查询关联对象(或者)关联集合对象时,需要手动编写SQL来完成,所以称之为半自动ORM映射工具。

04、传统JDBC开发存在的问题?

  • 频繁创建数据库连接对象、释放、容易造成系统资源浪费,影响系统性能,可以使用连接池解决这个问题,但是使用JDBC需要自己实现连接池。
  • SQL语句定义、参数设置、结果集处理存在硬编码,实际项目中SQL语句变化的可能性较大,一旦发生变化,需要修改代码,系统需要重新编译,重新发布,不好维护。
  • 使用preparedStatemen向占有位符号传参存在硬编码,因为SQL数据的WHERE条件不一定,可能多也可能少,修改SQL还要修改代码,系统不易维护
  • 结果集处理存在重复编码,处理麻烦,如果可以映射成Java对象会比较方便。

05、JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?

  • 数据库连接创建、释放频繁造成系统西苑浪费从而影响系统性能,如果使用数据库连接池可解决此问题。

解决:在mybatis-config.xml中配置数据库连接池,使用连接池管理数据库连接。

  • SQL语句写在代码中造成代码不易为维护,实际应用SQL变化的可能较大,SQL变动需要改Java代码。

解决:将SQL语句配置在XXXmapper.xml文件中,与Java代码分离。

  • 向SQL语句传参麻烦,因为SQL语句的WHERE条件不一定,可能多也可能少,占位符需要和参数一一对应。

解决:MyBatis自动将Java对象映射至SQL语句

  • 对结果集解决麻烦,SQL变化导致解决diamante变化,且解析前需要遍历,如果能将数据记录封装成pojo对象,解决就会比较方便。

解决:MyBatis自动将SQL执行结果映射至Java对象


二、MyBatis解决(与)运行原理

三、映射器

四、高级查询

五、动态SQL

六、缓存

七、模块(插件)


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值