Mybatis(一)

1、什么是MyBatis?

答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。

2、讲下MyBatis的缓存

答:1)一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为

Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将

清空。

2)二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap 存

储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如

Ehcache。要开启二级缓存,你需要在你的 SQL 映射文件中添加一行:<cache/>

3 ) 对 于 缓 存 数 据 更 新 机 制 , 当 某 一 个 作 用 域 ( 一 级 缓 存 Session/ 二 级 缓 存

Namespaces)的进行了 C/U/D 操作后,默认该作用域下所有 select 中的缓存将

被 clear。

3.简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之 间的映射关系?

Mybatis 将所有 Xml 配置信息都封装到 All-In-One 重量级对象 Configuration 内

部。在 Xml 映射文件中,<parameterMap>标签会被解析为 ParameterMap 对象,

其每个子元素会被解析为 ParameterMapping 对象。<resultMap>标签会被解析为

ResultMap 对象,其每个子元素会被解析为 ResultMapping 对象。每一个<select>、

<insert>、<update>、<delete>标签均会被解析为 MappedStatement 对象,标签

内的 sql 会被解析为 BoundSql 对象。

  1. 什么是ORM映射

   答: ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

5、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

答:

1)Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。

2)Mybatis提供了9种动态sql标签:trim|where|set|foreach|if|choose|when|otherwise|bind。

3)其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值