8.Mybatis的优缺点:
-
优点:
- 简单易学,容易上手
- 提供了很多第三方插件
- 能够与Spring很好的集成
- 消除了JDBC大量冗余的代码
- 后期维护简单
-
缺点:
- 字段多、关联表多时,SQL语句的编写工作量较大
- 数据库移植性差
13.在Mybatis中$和#有什么区别:
-
使用$设置参数时:
- ${}是字符串替换
- Mybatis在处理{}替换成变量的值
- 动态指定SQL语句的列名等场景使用
-
使用#设置参数时:
- #{}是预编译处理
- Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值
- 执行效率高,并且可以防止SQL注入,提高系统安全性
14.Mybatis和hibernate的区别:
-
相同点:都是对JDBC的封装,都是持久层框架,都是用于Dao层开发
-
不同点:
- Mybatis是一个半自动ORM持久层框架,是轻量级框架,多表配置简单,对数据库移植性差,后期SQL维护容易
- hibernate是一个全自动ORM持久层框架,是重量级框架,多表配置复杂,对数据库移植性好,后期SQL维护困难
7.介绍一下Mybatis的缓存机制:
- 一级缓存:默认启动且不能关闭,也称为本地缓存,在SqlSession里面
- 二级缓存:默认不启动,在nameSpace里面
- 开启二级缓存后,一级缓存拿到数据库的数据二级缓存也会拥有,但是当执行了增删改操作,会删除session的一级缓存的数据;先找二级缓存的数据,二级没有找一级,一级没有找数据库。