本篇文章为你整理了Springboot整合mybatisPlus+Swagger3.0()的详细内容,包含有 Springboot整合mybatisPlus+Swagger3.0,希望能帮助你了解 Springboot整合mybatisPlus+Swagger3.0。
SpringBoot+Mybatisplus+Mybatis+Swagger+代码自动生成+log4j
1. SpringBoot+Mybatis+MybatisPlus
1.1 mybatisplus依赖+mybatis依赖
!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator --
dependency
groupId com.baomidou /groupId
artifactId mybatis-plus-boot-starter /artifactId
version 3.5.1 /version
/dependency
dependency
groupId org.mybatis.spring.boot /groupId
artifactId mybatis-spring-boot-starter /artifactId
version 2.2.2 /version
/dependency
1.2 配置信息
1.2.1 yml中datasource配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3307/community
username: root
password: 123456
1.2.2 mybatis别名和xml扫描
mybatis:
mapper-locations: classpath:mappers/*xml
type-aliases-package: com.zjw.swager.mybatis.entity
1.3测试准备
1.3.1编写类Building
public class Building {
//TypeId是指定这个属性为id,写上这个才可以通过操作数据库中的id属性,否则类似selectById会失效
//并在后面追加类型,此处写的是自动类型
@TableId(type = IdType.AUTO)
private long id;
private String numbers;
private String uints;
private String remarks;
1.3.2编写Mapper接口BuildingMapper
@Mapper
public interface BuildingMapper extends BaseMapper Building {
//需要继承BaseMapper,要加上需要操作的泛型
1.3.3 在springboot启动类中添加注解扫描Mapper
@SpringBootApplication
//扫描Mapper包下的Mapper接口
@MapperScan("com.zjw.mapper")
public class Springboottest01Application {
public static void main(String[] args) {
SpringApplication.run(Springboottest01Application.class, args);
1.3.4 编写测试类
@SpringBootTest
public class demo1 {
@Autowired
private BuildingMapper buildingMapper;
@Test
public void test01(){
Building building = buildingMapper.selectById(1);
System.out.println("building = " + building);
输出结果:
building = Building{id=1, numbers=21栋, uints=1单元, remarks=无}
测试成功!
1.4 QueryWrapper条件构造器
// 条件查询
QueryWrapper Building queryWrapper = new QueryWrapper ();
// eq 参数1 给的是表的字段 参2 值
// queryWrapper.eq("sid",4);
// queryWrapper.eq("sage",40);
// queryWrapper 支持链式编程
queryWrapper.eq("sid", 4)
.eq("sage", 40);
// 条件包装类 会自动完成 sql的条件 拼接
// SELECT sid,s_name,sage,ssex,sphone FROM t_student WHERE (sid = ? AND sage = ?)
Building building = buildingMapper.selectOne(queryWrapper);
System.out.println("building = " + building);
复杂的查询条件时使用QueryWrapper条件构造器
1.5 小结 整合步骤
01 添加mybatis-plus的依赖
02 配置数据库连接要素
03 写自己的mapper 继承 mp 的BaseMapper \ 要给泛型
04 需要在启动类中扫描mapper包
1.6 分页
新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
因此需要添加MybatisPlusConfig配置类进行设置
1.6.1 添加配置类,设置拦截器
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
// 拦截器添加分页插件
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
}
1.6.2 测试分页
@Test
public void test02(){
QueryWrapper Building qr = new QueryWrapper ();
qr.lt("id",100);
IPage Building page1 = new Page (1,4);
IPage Building page = buildingMapper.selectPage(page1, qr);
System.out.println("page = " + page.getRecords());
输出结果:
page = [Building{id=1, numbers=21栋, uints=1单元, remarks=无}, Building{id=7, numbers=17栋, uints=2单元, remar。。。。。。
测试成功!
2. pringBoot+Mybatisplus+Mybatis+Swagger
2.1依赖
!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator --
dependency
groupId com.baomidou /groupId
artifactId mybatis-plus-boot-starter /artifactId
version 3.5.1 /version
/dependency
dependency
groupId org.mybatis.spring.boot /groupId
artifactId mybatis-spring-boot-starter /artifactId
version 2.2.2 /version
/dependency
!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --
dependency
groupId io.springfox /groupId
artifactId springfox-swagger-ui /artifactId
version 2.9.2 /version
/dependency
!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --
dependency
groupId io.springfox /groupId
artifactId springfox-swagger2 /artifactId
version 2.9.2 /version
/dependency
这里的swagger版本建议用低一些的版本,高版本有兼容性问题!
Failed to start bean ‘documentationPluginsBootstrapper’ 把springboot 版本改成2.6.0 以下版本就可以
若有版本问题:
将依赖改成依赖集合
dependency
groupId io.springfox /groupId
artifactId springfox-boot-starter /artifactId
version 3.0.0 /version
/dependency
原先的Swagger的两个依赖不再需要
同时配置中的@EnableSwagger2也不再需要加上,以下为可选项
//@EnableSwagger2
@EnableOpenApi//可以不写
2.2 配置
swagger需要配置类设置API文档信息
2.2.1编写swagger配置类
//1. 配置类
@Configuration
//2. 开启swagger支持
//@EnableSwagger2
@EnableOpenApi//swagger3.0依赖 可以不写
public class SwaggerApp {
* 3、自动创建Docket文档摘要对象
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2) // 选择swagger的版本,这里若选的3.0则要用OAS_30
// 配置文档信息:swagger文档的标题、版本、描述
.apiInfo(this.apiInfo())
.select()
// 配置要生成swagger文档的扫描的目录包
.apis(RequestHandlerSelectors.basePackage("com.woniu.web"))
// 对指定路径下的任意类生成文档
.paths(PathSelectors.any())
// 创建对象
.build();
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
// 指定文档标题 (在swagger页面会显示)
.title("SpringBoot中使用Swagger构建接口文件")
// 指定文档的版本
.version("1.0")
// 文档描述
.description("API描述").build();
2.2.2 通过注解添加API中的内容
2.2.2.1 实体类中
//实体类上的注解
@ApiModel(description = "建筑类实体")
public class Building {
//TypeId是指定这个属性为id,写上这个才可以通过操作数据库中的id属性,否则类似selectById会失效
//并在后面追加类型,此处写的是自动类型
@TableId(type = IdType.AUTO)
//实体类中属性的注解
@ApiModelProperty("主键id")
private long id;
@ApiModelProperty("楼栋号")
private String numbers;
@ApiModelProperty("单元号")
private String uints;
@ApiModelProperty("备注")
private String remarks;
2.2.2.2 mapper中的设置
@Mapper
public interface BuildingMapper extends BaseMapper Building {
需要继承BaseMapper ,设置好泛型
2.2.2.3 service中的设置
public interface BuildingService extends IService Building {
需要继承IService
2.2.2.4ServiceImp中的设置
@Service
public class BuildingServiceImpl extends ServiceImpl BuildingMapper, Building implements BuildingService {
在实现BuildingService的同时,还要继承ServiceImpl BuildingMapper ,Building
2.2.2.5controller 中的设置及注解
@RestController//rest风格注解,替代@Controller和@ResponseBody
@RequestMapping("/building") 设置访问路径
@Api(tags = "楼栋管理")//swagger注解,解释controller的功能
public class BuildingController {
@Autowired//自动注入
private BuildingService buildingService;
@GetMapping
swagger3.0访问路径:http://localhost:8080/swagger-ui/
swagger2访问路径:http://localhost:8080/swagger-ui.html
3. 整合代码自动生成(代码生成器)
3.1 依赖
dependency
groupId com.baomidou /groupId
artifactId mybatis-plus-generator /artifactId
version 3.5.2 /version
/dependency
dependency
groupId mysql /groupId
artifactId mysql-connector-java /artifactId
/dependency
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-freemarker /artifactId
/dependency
当前包未传递依赖 MP 包,需要自己引入!
3.2 配置代码生成
public static void main(String[] args) {
FastAutoGenerator.create(
"jdbc:mysql://localhost:3306/spring_db",
"root",
"root")
// 全局配置
.globalConfig(builder - {
builder.author("yellow Docter") // 设置作者
.enableSwagger() // 开启 swagger 模式
.outputDir("C:\\java_lesson\\pro\\springboot_auto\\src\\main\\java"); // 指定输出目录
// 包配置
.packageConfig(builder - {
builder.parent("com.wn") // 设置父包名
.controller("controller") //controller
.service("service") //service
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper")
.entity("entity");
//表的配置
.strategyConfig(builder - {
builder.addInclude("user"); // 设置需要生成的表名
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
System.out.println("成功了...");
3.3运行
配置好生成代码类后直接运行类中主方法
即可生成
注意设置包名及路径
以上就是Springboot整合mybatisPlus+Swagger3.0()的详细内容,想要了解更多 Springboot整合mybatisPlus+Swagger3.0的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。