面试题-SSM框架篇

本文深入探讨SSM(Spring, SpringMVC, Mybatis)框架的面试重点,包括Mybatis的理解、缓存机制,Spring的IOC和AOP,以及SpringMVC的工作流程和优势。详细解析了Mapper接口原理、动态SQL、Bean生命周期、RESTful风格和异常处理等关键知识点。" 107104636,9536854,Vue中使用iView的Select下拉框与Upload文件上传组件,"['前端开发', 'Vue', 'JavaScript']
摘要由CSDN通过智能技术生成

面试题-SSM框架篇

一、Mybatis篇

1.谈谈你对 Mybatis 的理解

  • Mybatis 是一个可以自定义 SQL 、存储过程和高级映射的持久层框架。
  • 内部封装了 JDBC,开发的时候只需要关注 SQL 语句本身,性能高、效率高、灵活性高

2.mapper 接口层和 mapper 映射文件的映射关系

接口的类路径 sql 的 namespace
方法名(不能重载) sql 的 id(唯一)
输入参数类型 sql 的 parameterType
输出参数类型 sql 的 resultType

3.Mapper 接口工作原理

  • Mapper接口的工作原理是JDK的动态代理,Mybatis 运行时会使用 JDK动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法,从而执行所代表的sql,然后将sql的执行结果返回。

4.MyBatis 执行 SQL 的工作原理,都有哪些映射形式

  • 使用 resultMap 标签,定义数据库列名和对象属性之间的映射关系
  • 使用 sql 列的别名功能,将列的别名书写为对象属性名
  • 有了列名与属性名的映射关系后,MyBatis 通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回

5.讲一下 MyBatis 的缓存

  • MyBatis 的缓存分为一级缓存、二级缓存,一级缓存存放在 session 中,默认就有
  • 二级缓存存放在命名空间中,默认是不打开的,使用二级缓存属性类需要实现 serializable 接口,可以在映射文件中配置 cache 标签开启

6. MyBatis 动态SQL的执行原理?有哪些动态sql?

执行原理 根据表达式的值完成逻辑判断并动态拼接 SQL
if 使用if标签,让我们可以有选择的加入 SQL 语句的片段
where where标签会自动去掉标签体内前面多余的 and / or
set 使用set标签动态管理更新(set) 子句,并且动态去掉两端多余的逗号
trim 使用trim标签控制条件部分两端是否包含某些字符
choose/when/otherwise 在多个分支条件中,仅执行一个,类似于 java 的 if,else
foreach 迭代,批量更新

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三份强势七分暖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值