springboot整合mybatis,pageHelper,定时器,swagger

news/2025/2/10 22:28:34/

1. springboot如何整合mybatis   

1.引入依赖

<!--        mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency>

2.创建实体类

@Data
public class User {private Integer id;private String name;private String password;
}

3.创建dao接口

//为该接口生成代理实现类
@Mapper
public interface UserDao {public User findById(Integer id);
}

4.映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserDao"><select id="findById" resultType="com.example.demo.entity.User">select * from user where id=#{id}</select>
</mapper>

5.配置文件

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///company?serverTimezone=Asia/Shanghai
#指定mybatis映射文件所在的路径
mybatis.mapper-locations=classpath:mapper/*.xml


2. springboot如何整合pageHelper

1.依赖

<!--        pageHelper依赖--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.2</version></dependency>
#日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2.测试

@Test
public void test02(){PageHelper.startPage(1,2);List<User> all = userDao.findAll();PageInfo<User> pageInfo=new PageInfo<>(all);System.out.println("总条数"+pageInfo.getTotal());System.out.println("总页码"+pageInfo.getPages());System.out.println(pageInfo.getList());
}


3. 为何要使用swagger2

在平时开发中,一个好的API文档可以减少大量的沟通成本,还可以帮助新加入项目的同事快速上手业务。大家都知道平时开发时,接口变化总是很多,有了变化就要去维护,也是一件比较头大的事情。尤其是现在前后端分离情况,更容易造成文档和代码不一致。这时,我们可以通过Swagger2来使接口规范,方便维护。

Swagger是一款Restful接口的文档在线自动生成和功能测试功能软件。
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

4. springboot如何整合swagger2

1.依赖

<!--        引入swagger2依赖--><dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>1.9.1.RELEASE</version></dependency>
<!--        图形化依赖--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency>

2.创建 Swagger配置类

@Configuration
public class SwaggerConfig {//swagger所有功能都集中在Docket类中,该方法作用获取Docket对象并交予spring管理@Beanpublic Docket docket(){Docket docket=new Docket(DocumentationType.SWAGGER_2);return docket;}}

3.开启Swagger2的注解

@SpringBootApplication
@EnableScheduling//开启定时任务注解
@EnableSwagger2//开启Swagger2的注解
public class Demo001Application {public static void main(String[] args) {SpringApplication.run(Demo001Application.class, args);}}

4.测试

http://localhost:8080/swagger-ui.html

@Configuration
public class SwaggerConfig {//swagger所有功能都集中在Docket类中,该方法作用获取Docket对象并交予spring管理@Beanpublic Docket docket(){Docket docket=new Docket(DocumentationType.SWAGGER_2).groupName("ghx").apiInfo(getInfo()).select().apis(RequestHandlerSelectors.basePackage("com.ghx.demo001.controller")).build();return docket;}//接口文档的描述private ApiInfo getInfo(){Contact DEFAULT_CONTACT = new Contact("陆", "http://www.dy.com", "110@qq.com");ApiInfo DEFAULT = new ApiInfo("ghx的系统", "ghx的系统", "1.0", "http://www.baidu.com",DEFAULT_CONTACT, "AAA 2.0", "http://www.aaa.com", new ArrayList<VendorExtension>());return DEFAULT;}
}

常用注解

@Api(tags = "说明")   加载在controller类上
@ApiOperation(value = "查询所有用户信息")        接口方法上
@ApiImplicitParams(value = {@ApiImplicitParam(value = "学生编号",name = "xs"),@ApiImplicitParam(value = "姓名",name = "n")
})        接口方法上,对所有参数的概述
@ApiModel(value = "用户实体类")        实体类上
@ApiModelProperty("用户id")        实体类属性上


5. 什么是定时器 

在规定的某个时间,执行相应的业务代码

应用

1.取消订单

2.oss文件上传                定时删除冗余文件

3.新用户注册后,7天发送问候短信

1.依赖

<!--        引入QUARTZ定时器依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>

2.创建一个定时任务类

@Component
public class QuarzConfig {@Autowiredprivate UserDao userDao;//每一秒执行查询所有用户@Scheduled(cron = "0/1 * * * * ?")public void task(){List<User> all = userDao.findAll();System.out.println(all);}
}

3.EnableScheduling

@SpringBootApplication
@EnableScheduling//开启定时任务注解
public class Demo001Application {public static void main(String[] args) {SpringApplication.run(Demo001Application.class, args);}}

 


springboot3整合

1.整合mybatis   

依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis和springboot整合的依赖。starter 启动依赖。spring-boot-starter-XXXX: 内部依赖XXX-spring-boot-starter: 外部依赖-需要添加版本号
--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.4</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency>

 如果这里有dao接口需要添加@Mapper注解,可以如下 

2.整合pageHelper

依赖
<!--        springboot是3.0以上,分页需要2.0以上-->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version>
</dependency>

配置文件

#设置PageHelper分页合理化
pagehelper.reasonable=true

3.整合定时器

1.引入Quartz依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

 2.定义事务

@Component
public class QuartzConfig {@Scheduled(cron = "0/5 * * * * ? ")public void task(){System.out.println("aaa你好");}
}

 3.开启任务注解驱动

 

4.整合swagger3

依赖

<!--swagger3-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.1.0</version>
</dependency>

配置文件

#开启swagger3接口
springdoc.api-docs.enabled=true
#为指定包下的类生成文档
springdoc.packages-to-scan=com.ghx.controller

常用注解

@Tag(name="") 放在Controller类上,对该类加以说明
@Operation(summary="")放在接口方法上,对接口方法的说明
@Paramters({
    @Paramter(name="",description="",require="") 对单个参数的说明
})
@Schema(name = "id",description = "用户id") 对实体类以及属性的说明


http://www.ppmy.cn/news/1570978.html

相关文章

Java集合List详解(带脑图)

允许重复元素&#xff0c;有序。常见的实现类有 ArrayList、LinkedList、Vector。 ArrayList ArrayList 是在 Java 编程中常用的集合类之一&#xff0c;它提供了便捷的数组操作&#xff0c;并在动态性、灵活性和性能方面取得了平衡。如果需要频繁在中间插入和删除元素&#xf…

linux——网络(服务器的永久不挂——守护进程)

文章目录 目录 文章目录 前言 一、前后台进程 1. 前台进程 (Foreground Process) 2. 后台进程 (Background Process) 3. 前后台进程的切换 4. 关键命令和操作 5. 注意事项 6. 信号处理 二、守护进程 1. 守护进程的核心特点 2. 常见守护进程示例 3.接口介绍 1、 fork() 2. sets…

如何解决 Linux 文件系统挂载失败的问题

当遇到Linux文件系统挂载失败的问题时&#xff0c;您可以通过以下步骤来解决问题&#xff1a; 解决方法&#xff1a; 检查挂载点&#xff1a; 确保要挂载的目标文件系统存在&#xff0c;并且挂载点是正确的。检查挂载点是否已经被其他文件系统占用。 检查文件系统状态&#x…

Spring AI -使用Spring快速开发ChatGPT应用

前言 Spring在Java生态中一直占据大半江山。最近我发现Spring社区推出了一个Spring AI项目&#xff0c;目前该项目还属于Spring实验性项目&#xff0c;但是我们可以通过该项目&#xff0c;可以非常快速的开发出GPT对话应用。 本篇文章将会对SpringAI进行简单的介绍和使用&#…

【面试】Java高频面试题(2023最新版)

文章目录 一、java基础 1、JDK 和 JRE 有什么区别&#xff1f;2、 和 equals 的区别是什么&#xff1f;3、final 在 java 中有什么作用&#xff1f;4、java 中的 Math.round(-1.5) 等于多少&#xff1f;5、String 属于基础的数据类型吗&#xff1f;6、String str"i"…

我用Ai学Android Jetpack Compose之CircularProgressIndicator

答案来自 通义千问 Q: 我想学习CircularProgressIndicator&#xff0c;麻烦你介绍一下 当然可以&#xff01;CircularProgressIndicator 是 Jetpack Compose 中的一个组件&#xff0c;用于显示一个循环的圆形进度条。它非常适用于需要指示加载状态或进程完成度的场景。接下来…

PySpark学习笔记5-SparkSQL

sparkSql的数据抽象有两种。 一类是data set适用于java和Scala 一类是data frame适用于java&#xff0c;Scala&#xff0c;python 将r d d转换为data frame #方式一 df spark.createDataFrame(rdd,schema[name,age]) #方式二 schema Structtype(). add(id,integertype(),nu…

鸿蒙生态潮起:开发者的逐浪之旅

鸿蒙生态潮起&#xff1a;开发者的逐浪之旅 在全球科技的澎湃浪潮中&#xff0c;鸿蒙生态宛如一座正在崛起的新大陆&#xff0c;熠熠生辉&#xff0c;吸引着无数开发者扬帆起航&#xff0c;探寻其中蕴藏的无限机遇&#xff0c;也直面诸多挑战。 鸿蒙生态的机遇&#xff0c;首先…