黑马商城(8.30)
课程安排
MybatisPlus
功能:代码生成、自动分页、逻辑删除、自动填充功能等
基本步骤:
- 引入MybatisPlus依赖
- 定义Mapper接口并继承BaseMapper
常见注解:
MybatisPlus通过扫描实体类,并给予反射实体类信息作为数据库表信息 - @TableName:用来指定表名
- @TableId:用于标识实体类中的主键字段
- @TableField:用来指定表中的普通字段信息
核心功能一:条件构造器总结PPT
核心功能二:自定义sql语句
核心功能三:Service接口:
拓展功能一:代码生成
安装插件MybatisPlus,并配置数据库
拓展功能二:静态工具
有的时候Service之间也会相互调用,为了避免出现循环依赖问题,MybatisPlus提供一个静态工具类:Db,其中的一些静态方法与IService中方法签名基本一致,也可以帮助我们实现CRUD功能
拓展功能三:逻辑删除
对于一些比较重要的数据,往往会采用逻辑删除的方案,即:
- 在表中添加一个字段标记数据是否被删除
- 当删除数据时把标记置为true
- 查询时过滤掉标记为true的数据
一旦采用了逻辑删除,所有的查询和删除逻辑都要跟着变化,非常麻烦。
注意:只有MybatisPlus生成的SQL语句才支持自动的逻辑删除,自定义SQL需要自己手动处理逻辑删除
逻辑删除本身也有自己的问题,不推荐使用,如果数据不能删除,可以采用把数据迁移到其它表的办法。 - 会导致数据库表垃圾数据越来越多,从而影响查询效率
- SQL中全都需要对逻辑删除字段做判断,影响查询效率
拓展功能四:通用枚举
把枚举类型与数据库类型自动转换
拓展功能五:JSON类型处理器
JacksonTypeHandler处理器
插件功能