侧边栏壁纸
  • 累计撰写 106 篇文章
  • 累计创建 19 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

MyBatis面试题

zero
2022-04-21 / 0 评论 / 0 点赞 / 30 阅读 / 1897 字
温馨提示:
本文最后更新于 2024-07-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

什么是MyBatis

  • Mybatis是一个半ORM框架(对象关系映射)-> Hibernate全ORM框架 -> 基于JDBC封装的框架

  • 专注于SQL语句,不用关心JDBC操作的其他流程

谈谈你为什么用MyBatis,MyBatis有什么优点

  • 集于SQL语句的编程,相对来说会更加的灵活

  • 和JDBC相比,减少了50%以上的代码量

  • 可以很好的和各种数据库兼容

  • 能够和Spring很好的兼容

  • 提供了非常灵活的标签,动态SQL语句等

MyBatis有哪些缺点

  • SQL语句的编写工作量大

  • SQL语句和具体点数据库依赖很大,导致数据库的移植性很差,不能够随意的切换数据库

井和$的区别

  • 井{ } 是预编译处理,在MyBatis处理 #{ }的时候会替换为?然后调用PreparedStatement的set方法来赋值

  • ${ } 是在MyBatis处理的时候就会直接替换,会有SQL注入的风险

属性名和字段名不一致的情况

  • 查询的SQL语句我们通过别名处理

  • 通过resultMap来设置字段和属性的映射关系

如何获取自动生成的主键

在使用insert标签的时候,usegeneratedKeys = true keyproprety='id'

MyBatis中用到了哪些设计模式

  • 缓存模块:装饰器模式

  • 日志模块:适配器模式,代理模式

  • SqlSessionFactory:工厂模式

  • Mapper接口:代理模式

  • SqlSessionFactoryBuiler:建造者模式

映射文件中处理CRUD操作的标签以外还有那些标签?

  • sql : SQL代码片段

  • cache : 缓存

  • cache-ref

  • resultMap

全局配置文件中有哪些标签:

  • properties

  • settings

  • typeHandler

  • interceports

  • elements

  • mappers

MyBatis中的分页

逻辑分页和物理分页两种
逻辑分页:不是正真的分页,RowBounds来进行分页
物理分页:我们都是通过拦截器来实现的
select from xxx -> select from ( select * from xxx ) t limit 0,10

0

评论区