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

server/2025/2/8 6:17:15/

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/server/165872.html

相关文章

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中&#xff0c;每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口&#xff0c; 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中&#xff1a; 在tools下所有模块中&#xff0c;最重要的是building.py模块&#xff0c;在此脚本里面…

本地部署deepseek简单教程

部署deepseek&#xff0c;首先需要知道deepseek官网地址&#xff1a;DeepSeek 第一步&#xff1a;Ollama 去ollama下载对应的版本&#xff0c;我的电脑是window 在这里可以看到关于deepseek相关 第二步&#xff0c;下载完ollama无脑下一步就可以 这样属于安装成功 第三步&…

搜维尔科技:Movella数字化运动领域的领先创新者

下一代游戏、视觉效果、直播、工作场所人体工程学、运动表现、海洋和机器人技术。前所未有的运动成就。让所有年龄段的观众惊叹不已的艺术创新。Movella 的全栈技术用于捕捉、数字化和分析运动&#xff0c;正在让世界变得更美好。 数字艺术家的创造力得到释放 灯光、摄像机、…

2.7.3 eIM 证书

2.7.3 eIM 证书 本节描述了 eIM&#xff08;eSIM IoT 远程管理器&#xff09; 证书的相关内容&#xff0c;包括支持的证书类型、证书的颁发、验证和吊销机制等。 1. 支持的证书类型 eIM 可以选择支持以下类型的证书&#xff1a; 用于签署 eUICC 包的 eIM 证书&#xff08;如…

绿虫储能仿真设计:赋能储能项目工程清单生成

在能源转型的浪潮中&#xff0c;储能项目对能源行业可持续发展至关重要。绿虫储能仿真设计软件凭借先进技术&#xff0c;在工程清单生成方面的优异表现&#xff0c;为储能项目的全流程提供了强大的技术支撑&#xff0c;大幅提升了项目推进的效率和质量。 当用户在绿虫储能仿真…

STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI

1 引言 STM32 微控制器在嵌入式领域应用广泛&#xff0c;因为它性能不错、功耗低&#xff0c;还有丰富的外设&#xff0c;像工业控制、智能家居、物联网这些场景都能看到它的身影。与此同时&#xff0c;人工智能技术发展迅速&#xff0c;也逐渐融入各个行业。 把 AI 部署到 STM…

markdown语法学习

Markdown语法学习 # 这是一级大标题 ## 这是二级大标题 ### 这是三级大标题 #### 这是四级大标题 ##### 这是五级大标题 ###### 这是最小的大标题 我是**粗体**字 我是*斜体*字 我是~~删除~~线 换行直接多敲个回车&#xff0c;或者第一行后面2个空格 我是第一行 我是第二行…

STM32自学记录(八)

STM32自学记录 文章目录 STM32自学记录前言一、ADC杂记二、实验1.学习视频2.复现代码 总结 前言 ADC 一、ADC杂记 ADC其实就是一个电压表&#xff0c;把引脚的电压值测出来&#xff0c;放在一个变量里。 ADC&#xff1a;模拟——数字转换器。 ADC可以将引脚上连续变化的模拟电…