mybatis完整请求流程
mybatis和mybatis-plus
mybatis
持久层框架,支持自定义sql查询,存储过程和高级映射,
几乎消除了JDBC代码和手动设置以及结果集的检索
JDBC编程问题
- 数据库建立连接创建,释放频繁造成资源浪费
- SQL写在java代码中,维护难
- 使用
preparedStatement
向占位符传参数存在硬编码,SQL语句where条件中占位符个数可能改变,修改SQL还需修改Java代码,系统维护难 - 对结果集解析存在硬编码,SQL语句变化导致解析代码变化,维护难
mybatis的一级缓存和二级缓存
mybatis-plus
mybatis-plus是mybatis的增强版,在mybatis的基础上只增强不改变,引入mybatis-plus不会对现有的mybatis框架有影响
优势有:
- 依赖少,仅依赖mybatis和mybatis-spring
- 损耗小,启动会自动注入基本的CURD,性能损耗小,直接面向对象操作
- 预防sql注入,内置sql注入剥离器
- 通用CRUD(增删改查 )操作,内置通用Mapper,通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,有强大的条件构造器
- 多种主键策略,支持多达四种主键策略
- 支持热加载,Mapper对应的XML支持热加载,对应简单的CRUD操作,甚至可以无XML启动