##🎉 Spring Boot系列技术文章和开源项目等系列文章收集整理
一.说明
Mybatis-Plus是一个Mybatis框架的增强插件,根据官方描述,MP只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑.并且只需简单配置,即可快速进行
CRUD 操作,从而节省大量时间.代码生成,分页,性能分析等功能一应俱全。
特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD
操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller
层代码,支持模板引擎,更有超多自定义配置等您来使用内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
分页插件支持多种数据库:支持
MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
二、Springboot整合mybatis-plus:
先创建一个Springboot项目,然后引入mybatis-plus pom依赖。
- Spring Boot
- Maven:
<!--MyBatis-Plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
Spring Boot 工程:
配置 MapperScan 注解
@SpringBootApplication
@MapperScan("com.example.mybatis.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
通常来说,一般的简单工程,通过以上配置即可正常使用 MyBatis-Plus,可快速进行CRUD操作,具体可参考以下项目:Spring Boot 快速启动示例
https://github.com/baomidou/mybatis-plus-samples/tree/master/mybatis-plus-sample-quickstart
三、Springboot整合mybatis-plus之代码自动生成
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成
Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
添加依赖
- MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:
- 添加 代码生成器 依赖
<!-- MyBatis-Plus 从 `3.0.3` 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:- 添加 代码生成器 依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
添加 模板引擎 依赖,MyBatis-Plus 支持
Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
Velocity(默认):
<!--添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
自动生成代码:
public class MysqlGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("程序猿木大大"); // 作者
gc.setOpen(false); //生成代码后是否打开文件夹
gc.setServiceName("%sService"); // 设置Service接口生成名称,这样生成接口前面就不会有 I
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mudada?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root"); //数据库用户名
dsc.setPassword("root"); //数据库密码
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
// pc.setModuleName("sys"); // 模块名称, 这里可以根据不同模块来写 根据需要看是否开启
pc.setParent("com.example.system"); // 父包名
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperControllerClass("com.example.mybatis.controller.BaseController"); //根据需要看是否开启
// strategy.setSuperEntityClass("com.example.mybatis.entity.BaseEntity"); //根据需要看是否开启
strategy.setEntityLombokModel(true);
strategy.setInclude("user"); // 数据库表名 如果要生成多个,这里可以传入String[]
mpg.setStrategy(strategy);
mpg.execute();
}
}
运行后就会生成对应的实体类,mapper层 、service层、controller层代码。
真要完全不懂得小伙伴,可详细看官方文档说明哦,或者联系我,我会给你讲解的。
微信扫一扫,获取更多精彩。
‘
微信搜一搜【程序猿木大大】回复 “资料” 获取一线大厂面试资料和简历模板以及其他更多资料。