Mybatis 面试题

1.Mybatis是什么?

Mybatis是一个优秀的持久化框架,把jdbc操作数据库的过程进行了封装

我们只需要关注sql本身即可

 

2.传统JDBC开发存在的问题

频繁创建数据库连接对象

sql语句定义硬编码

 

 

3.为什么需要预编译

防止sql注入

 

4.#{}与$的区别

#{} 预编译,${}字符串拼接

 

5.在mapper中如何传递多个参数

使用List,Map,或者对象传递多个参数

 

6.Mybatis实现一对多,多对一

使用resultMap标签,映射结果集

一对多:resultMap collection ofType

多对一:resultMap association javaType

 

7.Mybatis的一级与二级缓存

一级缓存:

一级缓存是默认开启的,作用域是session,当session关闭或者执行增删改的时候缓存清空,不同sqlsession之间缓存互不影响

 

二级缓存:

mybatis默认是没有开启二级缓存的,需要我们手动开启,它是mapper级别的缓存

,同一个namespace下的所有操作语句,都影响着同一个缓存,即二级缓存被多个SqlSession共享,是一个全局的变量

posted on 2022-06-20 22:01  每天积极向上  阅读(46)  评论(0编辑  收藏  举报

导航