当前位置:   article > 正文

面试题-SSM框架篇_ssm框架面试题

ssm框架面试题

面试题-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 迭代,批量更新

7.#{} 和 ${} 的区别

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/650535
推荐阅读
相关标签
  

闽ICP备14008679号