mybatis面试题(记录)

1、mybatis对JDBC做了哪些封装?
对jdbc操作数据库的过程进行了封装,使开发人员只需关注sql本身,而无需去花费精力去处理注册驱动、
创建connection、创建statement、手动设置参数、结果集检索等jdbc复杂的过程代码。

2、mybatis如何映射?
通过namespace来关联接口,namespace必须要跟你的接口路径一致

3、Mybatis接口绑定有几种实现方式,分别是怎么实现的?
2种
第一种是注解的方式 直接在接口上面添加@select @update @insert @delete 注解
第二种是xml方式,在mapper.xml里面 namespace要跟接口路径一致

4、Mybatis中和${}与#{}的区别?
#{} 预编译 可以防止sql注入 mybatis在处理#{}的时候,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值。
字 符 串 替 换 就 是 将 {} 字符串替换 就是将 {}替换为变量的值

5、myBatis 实现一对一有几种方式?具体怎么操作的?
有联合查询和嵌套查询,联合查询是几个表联合在一起,只查询一次,通过在resultMap里面配置association [əˌsoʊsiˈeɪʃn,əˌsoʊʃiˈeɪʃn]
节点配置一对一的类就可以完成。
嵌套查询是先查一个表,根据这个表里面结果的外键id,去另外一个表里查询数据,也是通过resultMap配置assoction,但另外一个表的查询通过select属性配置

6、myBatis 实现一对多有几种方式?怎么操作的?
二种方式分别为:联合查询 嵌套查询
联合查询:联合查询是几个表联合在一起,只查询一次,通过resultMap里面配置collection节点配置一对多的类就可以完成。
嵌套查询:嵌套查询是先查一个表,根据这个表里面结果的外键id,去另外一个表查询数据,也是通过配置collection,但另外一个表是通过查询select节点配置。

7、myBatis 里面的动态Sql是怎么设定的?用什么语法?
mybatis里面的动态sql一般是通过if节点来实现,通过OGNL语法来实现,如果要写的完整的话必须要配合where,trim节点,
where节点是判断包含节点有内容就插入where,否则不插入,trim节点是用来判断如果动态语句是用and 或 or开始,那么会
自动的把这个and或者or给去掉。

8、讲下 myBatis 的缓存?
mybatis有两种缓存,分别为一级缓存(session) 二级缓存(mapper)
Perpetual [pəˈpetʃuəl]
一级缓存:基于PerpetualCache的HashMap本地缓存,他的存储作用域是session,当Session flush 或 close,该Session中的所有cache都将清空,
默认打开一级缓存
二级缓存:也是基于PerpetualCache的HashMap本地缓存,他的存储作用域是mapper,并且可以自定义存储源,默认不打开二级缓存,开启二级缓存需要使
二级缓存属性类实现序列化接口,在他的映射文件中去配置

9、mybatis的执行流程?
服务器启动——>加载配置文件(mybatisConfig.xml)–产生–>构建者类(xmlConfigBuilder)–调用parse()–>配置类(configuration)–build–>

会话工厂(sqlSessionFactory)–调用openSession()–>sqlSession对象——>Executor执行器接口——>Statement处理器——>结果集处理器
(ResultSetHandler)————>结果

10、持久层框架为什么选择mybatis?
因为mybatis是最简单的持久层框架,更适合新手直接上手操作
可以自己去编写原生sql
提供xml标签,支持编写动态sql
提供映射标签,支持对象与数据库的ORM字段关系映射
可以应对需求量变化较多的项目,正符合目前流行的互联网项目
sql写在xml文件里,便于统一管理和优化,可重用、降低耦合度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值