Hello friend, I'm Ritchie|

Ritchie里其

园龄:2年6个月粉丝:4关注:7

Mybatis

1. 什么是MyBatis?

Mybatis是的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身

2、#{}${}的区别是什么?应用场景?

#{} : 根据参数的类型进行处理,#{} 传参在进行SQL预编译时,防止 SQL注入。
${} : 将参数取出不做任何处理,直接放入语句中。
mybatis 中优先使用 #{};当需要动态传入 表名或列名时,再考虑使用 ${} 。

3. 在mapper中如何传递多个参数,都有哪几种

  1. #{param1}
  2. @Param("pageIndex") Integer pageIndex
  3. JavaBean
  4. Map

4. 说出MyBatis动态标签(至少5个)

  • if
  • choose
  • where
  • forEach
  • trim

5. parameterType和resultType的区别

  • resultType:主要针对于从数据库中提取相应的数据出来。
  • parameterType:主要针对于将信息存入到数据库中,如:insert 增加数据到数据库,update更新数据等

6. 在用MyBatis插入时,如何得到数据库自增的主键值?

  1. useGeneratedKeys:使用主键回填,默认false
  2. last_insert_id:最后一条记录的id值

7. MyBatis批量删除/添加时,代码实现

在 Mapper 接口中传入 list 集合,在 mapper.xml 的 <delete>/<insert> 标签中使用
<foreach> 遍历 list 集合,循环多次删除数据,其实就是在delete / insert标签中加上foreach 标签

8.MyBatis动态SQL执行流程和原理

  1. 读取MyBatis的配置文件
  2. 加载SQL映射文件
  3. 构造SqlSessionFactory会话工厂
  4. 创建SqlSession会话对象
  5. Executor执行器
  6. 创建MappedStatement对象
  7. 输入参数映射
  8. 输出结果映射
    原理:根据表达式的值 完成逻辑判断并动态拼接 sql 的功能。

9. JDBC和Mybatis性能效率哪个块?为什么

JDBC快,因为 mybatis 需要去映射,而映射是在内存完成的,所以效率比 jdbc 慢。

10. MyBatis框架中用到了哪些设计模式?(3个)

- 单例模式:例如 ErrorContext 和 LogFactory。
- 工厂模式:例如 SqlSessionFactory、ObjectFactory。
- 代理模式:Mybatis 实现的核心,例如 MapperProxy、ConnectionLogger。
- Builder 模式 :例如 SqlSessionFactoryBuilder、XMLConfigBuilder。

11. MyBatis 一级缓存和二级缓存的区别?

  • 一级缓存:每一个SqlSession对象单独分配内存,多个SqlSession内存不共享,该缓存无需手动开启,直接使用
  • 二级缓存:mybatis默认不开启,需要手动开启,它是mapper级别的缓存;同一个namespace下的所有操作语句,都影响着同一个Cache,即 二级缓存被多个SqlSession共享,是一个全局的变量。

本文作者:Ritchie里其

本文链接:https://www.cnblogs.com/wang-zeyu/p/16694244.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ritchie里其  阅读(43)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
✨欢迎你~🍻
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 遥か Aimer
遥か - Aimer
00:00 / 00:00
An audio error has occurred.

作词 : aimerrhythm/田中ユウスケ

作曲 : 田中ユウスケ

编曲 : 玉井健二/百田留衣

海岸線の雨に ちらばった君の影

思い出が交差する 海辺の街

君はあの日のまま いまも夢を見てた

君はあの日のまま いまも夢を見てた

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

膝までの浅瀬で 見つけた星

君まで届くなんてさ ありえないような

浅い眠りの中で 深い夢から覚めて

浅い眠りの中で 深い夢から覚めて

裸足のまま駆けてく まばゆい星

君はあの日のまま どんな夢を見てた?

君はあの日のまま どんな夢を見てた?

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

いつまでもこうして 笑っててほしい

夜空に舞い上がる 幾千の花びら

でたらめな誓いで 生きてく日々

君から届くなんてさ ありえないような