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共享,是一个全局的变量