1.#{}和${}区别是什么
#{}:参数占位符,Mybatis会将sql中的#{}替换 为?
${}:变量占位符,也可以理解为取值符
2.讲一下mybatis的缓存机制
MyBatis提供了查询缓存来缓存数据,以提高查询的性能,MyBatis的缓存分为一级缓存和二级缓存。
一级缓存:SqlSession级别的缓存,基于HashMap本地缓存,当同一个sqlSession执行两次相同的SQL语句时,第一次执行完后会将数据库中查询到的结果写到缓存,第二次查询时直接从缓冲中读取不经过数据库了。一级缓存默认时开启的
二级缓存:mapper级别的缓存,也是基于hashmap本地缓存,不同的sqlSession两次执行相同的namespace下的sql语句,第二次查询就不会进行数据库了。