Mybatis Plus应用(一)简单介绍与环境搭建
MyBatisPlusadmin 发布于:2022-07-02 20:50:46
阅读:loading
回顾工作这么多年来,数据库的持久层用过各种多样的实现,实际上MyBatis在实际的项目应用中使用的时间并不久,但对它的实现以及应用的深度掌握也不可谓不多,但是MyBatis Plus的应用确实是空白,曾在前两年新一轮学习时接触了两款MyBatis的增强实现,最终挑选了社区更加活跃Mybatis Plus作为本站的持久层实现,主要还是借助于本站博客系统的实现来深度的掌握它。
从它的官网介绍来看,MyBatis Plus只对MyBatis做增强并未做代码改变,增加对单表的面向对象各种操作,同时又提供了多项扩展的功能点,更加易于应用于日常的业务功能实现。正如我经常在面试时会问及MyBatis Plus被应用时主要使用到了它的哪些功能点的问题(都是简历上有写MyBatis Plus),但似乎得到的答案并没用符合我的预期结果的,若有使用过可能只是简单停留在应用层面;若仔细看过官方网站则可能有更多的知识点普及;若在项目中搭建过MyBatis Plus并且在项目中广泛应用过,那能说到的知识点就更多了;比如本站共实践的知识点细节有:
(1)面向单表对象的新增/修改/删除/查询(如同Hibernate JPA等);
(2)面向对象的条件查询,支持限定查询字段范围,查询字段映射枚举;
(3)逻辑删除,自定义逻辑删除的状态值(发送的insert/update/select语句自动增加逻辑删除的条件);
(4)分页插件,只需要编写底层的查询,自动构造对应版本数据库支持的count语句(排除SQL中的order by逻辑)与实际数据查询语句;
(5)热部署Mapper.xml(定时自动刷新Mapper文件,貌似此功能被移除了),实际项目中的热部署推荐JRebel(本站有相应文章);
(6)动态表名,根据规则自动生成表名,本站操作日志的功能实现了按月份实现的动态表名(数据库绝没那么大,旨在学习应用);
(7)Id生成器的工具类;枚举工具类;等等;
(8)分页时的动态排序;
(9)官网还提供了更多的特色功能,可以移步仔细查看;
#数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: root
#mybatis-plus配置
mybatis-plus:
type-enums-package: cn.chendd.**.enums
global-config:
db-config:
logic-delete-value: DISABLE
logic-not-delete-value: USABLE
select-strategy: not_empty #查询时动态sql的判定条件 != null && != ""(因为表单中提交过来的数据会为""的情况)
mapper-locations: classpath:mybatis/mapper/**/*Mapper.xml
#日志输出级别
logging:
config: classpath:logback-spring.xml
新创建了mybatis-plus示例项目,将本站使用到的知识点进行了单独简单的实现,原项目代码功能可见《源码下载.zip》,相关的模块项目结构如下:
本项目示例使用IDEA构建,使用MySQL数据库,模块依赖Spring Boot 、lombok、JUnit、durid、MyBatis Plus3.3.1(构建博客版本时的最新版)。MyBatis Plus,也提供了有BaseMapper、IService和ServiceImpl,对于一些常规方法进行了封装,可以方便的应用于项目中,同时还提供了一些工具类也值得去应用,总之MyBatis提供的丰富的API值得去深度挖掘。
点赞