面试题:21(完成)

1.6.你对mybatis缓存机制的理解;

mybatis有一级缓存和二级缓存:

  • 一级缓存是在同一个会话里面执行同一个sql语句的时候会调用上一个sql语句的缓存来使用,所以一级缓存是存储在Session(会话)作用域中的,且一级缓存是默认是开启状态。
  • 二级缓存可以跨越多个会话共享缓存,执行的sql语句缓存会存储到内存中,第二次相同的sql语句会调用内存中的缓存来使用,所以二级缓存是存储在mapper(映射器)中,且二级缓存需要手动开启。

优点:高效利用资源,提高性能

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

mapper中有三种方法可以传递多个参数:

  1. 使用注解@Param(“变量名”)写出每个参数。
  2. 使用实体类封装多个属性。
  3. 使用Map集合封装多个属性值。

    1.9.mybatis实现一对一有几种方式?具体怎样操作?

    有两种方式,表连接查询和级联查询,通过进行一对一的配置。

    1.10.mybatis实现一对多有几种方式?具体怎样操作?

    有两种方式,表连接查询和级联查询,通过进行一对多的配置。

    1.11.mybatis的一二级缓存;

    一二级缓存的作用域进行增删改或者使用close释放缓存时,一二级缓存的缓存数据将被清空,一级缓存自动开启,二级缓存手动开启,且二级缓存需要实体类实现(Serializable)序列化接口。