什么是MyBatis
Mybatis是一个半ORM框架(对象关系映射)-> Hibernate全ORM框架 -> 基于JDBC封装的框架
专注于SQL语句,不用关心JDBC操作的其他流程
谈谈你为什么用MyBatis,MyBatis有什么优点
集于SQL语句的编程,相对来说会更加的灵活
和JDBC相比,减少了50%以上的代码量
可以很好的和各种数据库兼容
能够和Spring很好的兼容
提供了非常灵活的标签,动态SQL语句等
MyBatis有哪些缺点
SQL语句的编写工作量大
SQL语句和具体点数据库依赖很大,导致数据库的移植性很差,不能够随意的切换数据库
井和$的区别
井{ } 是预编译处理,在MyBatis处理 #{ }的时候会替换为?然后调用PreparedStatement的set方法来赋值
${ } 是在MyBatis处理的时候就会直接替换,会有SQL注入的风险
属性名和字段名不一致的情况
查询的SQL语句我们通过别名处理
通过resultMap来设置字段和属性的映射关系
如何获取自动生成的主键
在使用insert标签的时候,usegeneratedKeys = true keyproprety='id'
MyBatis中用到了哪些设计模式
缓存模块:装饰器模式
日志模块:适配器模式,代理模式
SqlSessionFactory:工厂模式
Mapper接口:代理模式
SqlSessionFactoryBuiler:建造者模式
映射文件中处理CRUD操作的标签以外还有那些标签?
sql : SQL代码片段
cache : 缓存
cache-ref
resultMap
全局配置文件中有哪些标签:
properties
settings
typeHandler
interceports
elements
mappers
MyBatis中的分页
逻辑分页和物理分页两种
逻辑分页:不是正真的分页,RowBounds来进行分页
物理分页:我们都是通过拦截器来实现的
select from xxx -> select from ( select * from xxx ) t limit 0,10
评论区