74、SpringBoot 整合 Spring Data JDBC

SpringBoot 整合 Spring Data JDBC


总结:用起来跟 Spring Data JPA 差不多

什么是 JdbcTemplate?(Template译为模板)
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作


Spring Data JDBC

既不需要JPA、Hibernate这种ORM框架,但Spring Data还是提供了面向对象的封装。

——它相当于是一种轻量化的持久化技术,用起来比Spring JDBC更方便,但又不像Spring Data JPA那么需要大量注解、复杂

它相当于是一个折中。


Spring Data JDBC的功能


大致包括如下几方面功能:

- DAO接口只需继承CrudRepositoryPagingAndSortingRepositorySpring Data JDBC能为DAO组件生成实现类、类似于Spring Data JPA- Spring Data JDBC支持方法名关键字查询、类似于Spring Data JPA
- 
- Spring Data JDBC支持用@Query定义查询语句。
- 
- Spring Data JDBC同样支持DAO组件添加自定义的查询方法
                  ——————通过添加额外的父接口,并为额外的该接口提供实现类,
                        Spring Data JDBC就能该实现类中的方法“移植”到DAO组件中。
                        
- 一般不支持样本查询;也不支持Specification查询。

Spring Data JDBC VS Spring Data JPA

Spring Data JDBC相当于“轻量化”的Spring Data JPA。

Spring Data JDBC的功能不如Spring Data JPA强大(毕竟它底层没有ORM框架的加持)。

Spring Data JDBC也不需要处理复杂的ORM映射、实体对象的生命周期管理等,因此Spring Data JDBC用起来更简单。
——Spring Data JDBC有点类似MyBatis


Spring Data JDBC映射规则

Spring Data JDBC默认的处理方式是“约定优于配置”的同名映射:

程序操作User对象,Spring Data JDBC对应于操作user表。

对于id数据列,自动被映射到对象的id属性。


Spring Data JDBC的注解:

 @Table:映射自定义的表名。非JPA注解
 
 @Column:映射自定义的列名,非JPA注解
 
 @Id:修饰标识属性,非JPA注解
 
 @PersistenceConstructor:修饰主构造器。当你的映射类中有多个构造器时,
                           你希望Spring Data JDBC用哪个构造器来创建对象,
                           就用该注解来修饰该构造器。

Spring Data JDBC操作数据库方法:

1、全自动:方法名关键字查询。

2、半自动:@Query指定查询语句。

3、全手动:自己定义查询方法,即可用DataSource,也用JdbcTemplate。


Spring Data JDBC的编程步骤:

1、定义映射类,为Java类添加@Table、@Column、@Id和 @PersistenceConstructor

2、让DAO接口继承CrudRepository或PagingAndSortingRepository。

3、在DAO接口中定义方法名关键字查询、@Query查询、完全自定义查询(需要额外的接口和实现类)


代码演示

其实跟 JPA 差不多

User 类

在这里插入图片描述

UserDao接口,

根据方法名关键字查询---------全自动,不用自己写sql的
也有通过注解 @Query 进行查询的 —>自己定义查询语句-----半自动,可以自己写sql语句
在这里插入图片描述

也可以自定义Dao接口,用来自己写sql和封装数据
在这里插入图片描述

自定义接口和实现类,来实现数据的查询,
一个基于 DataSource , 一个基于 jdbcTemplate
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

UserDaoTest 测试

测试类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

application.properties

在这里插入图片描述

pom.xml

一个是 spring data jdbc 的依赖 , 一个是 mysql 的依赖,
创建项目的时候这个 mysql 的依赖老是不完整,所以要记录下
在这里插入图片描述

完整代码

User

package cn.ljh.app.domain;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

/**
 * author JH
 */


@Data
//此处不能添加JPA注解,因为此项目没有用到 JPA
@Table("user_inf")
public class User
{

    @Column(value = "user_id")
    @Id
    private Integer id;
    private String name;
    private String password;
    private int age;

    /**
     * @PersistenceConstructor
     *  修饰主构造器。当你的映射类中有多个构造器时,
     *  你希望Spring Data JDBC用哪个构造器来创建对象,就用该注解来修饰该构造器
     */
    @PersistenceConstructor
    public User()
    {
    }

    public User(Integer id, String name, String password, int age)
    {
        this.id = id;
        this.name = name;
        this.password = password;
        this.age = age;
    }

    @Override
    public String toString()
    {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                '}';
    }
}

UserDao

package cn.ljh.app.dao;


import cn.ljh.app.domain.User;
import org.springframework.data.jdbc.repository.query.Modifying;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.repository.CrudRepository;

import java.util.List;


public interface UserDao extends CrudRepository<User,Integer>,CustomUserDao
{
    // 继承 CrudRepository 接口后,就已经有通用的 CRUD 操作,无需自己来书写这些方法
    //方法名关键字查询---------全自动

    //根据名字模糊查询
    List<User> findByNameLike(String namePattern);
    //根据年龄大小进行范围查询
    List<User> findByAgeGreaterThan(int startAge);

    List<User> findByAgeLessThan(int age);

    //根据年龄区间进行范围查询
    List<User> findByAgeBetween(int startAge , int endAge);

    //@Query 查询 --->自己定义查询语句-----半自动
    //rowMapperClass 或 rowMapperRef 是用来做自定义映射,查询出来的User对象的数据,映射到Student对象的属性上面去都可以,因为是自定义的。

    //根据密码模糊查询
    @Query("select * from user_inf where password like :passwordPattern")
    List<User> findBySql(String passwordPattern);

    //根据年龄范围修改名字
    @Query("update user_inf set name = :name where age between :startAge and :endAge")
    @Modifying //更改数据库数据需要用到这个注解
    int updateNameByAge(String name , int startAge , int endAge);

}

CustomUserDao

package cn.ljh.app.dao;

import cn.ljh.app.domain.User;

import java.util.List;

/**
 * author JH
 */
//自己定义的接口,用来实现全手动的查询
public interface CustomUserDao
{
    //通过名字进行模糊查询,使用 dataSource
    List<User> customQueryUsingConnection(String namePattern);

    //通过名字进行模糊查询,使用 jdbcTemplate
    List<User> customQueryUsingTemplate(String namePattern);
}

CustomUserDaoImpl

package cn.ljh.app.dao.impl;

import cn.ljh.app.dao.CustomUserDao;
import cn.ljh.app.domain.User;
import lombok.SneakyThrows;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.sql.DataSource;
import java.sql.Array;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 * author JH
 */
public class CustomUserDaoImpl implements CustomUserDao
{
    private DataSource dataSource;
    private JdbcTemplate jdbcTemplate;

    //通过有参构造器进行依赖注入
    public CustomUserDaoImpl(DataSource dataSource, JdbcTemplate jdbcTemplate)
    {
        this.dataSource = dataSource;
        this.jdbcTemplate = jdbcTemplate;
    }

    @SneakyThrows
    @Override
    public List<User> customQueryUsingConnection(String namePattern)
    {
        //创建数据库连接
        Connection connection = this.dataSource.getConnection();
        //创建 PreparedStatement 预处理语句
        PreparedStatement pstmt = connection.prepareStatement("select * from user_inf where name like ?");
        pstmt.setString(1, namePattern);
        //执行查询
        ResultSet rs = pstmt.executeQuery();
        List<User> userList = new ArrayList<>();
        //遍历结果集,封装对象
        while (rs.next())
        {
            userList.add(new User(
                    rs.getInt("user_id"),
                    rs.getString("name"),
                    rs.getString("password"),
                    rs.getInt("age")
            ));
        }
        return userList;
    }

    @Override
    public List<User> customQueryUsingTemplate(String namePattern)
    {
        //直接执行查询
        List<User> userList = this.jdbcTemplate.query(
                "select user_id as id,name ,password,age from user_inf where name like ?",
                //把查询的结果封装起来
                new BeanPropertyRowMapper<>(User.class),
                namePattern
        );
        return userList;
    }
}

UserDaoTest

package cn.ljh.app;

import cn.ljh.app.dao.UserDao;
import cn.ljh.app.domain.User;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.jdbc.repository.query.Modifying;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.test.annotation.Rollback;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;

/**
 * author JH
 */
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class UserDaoTest
{
    @Autowired
    private UserDao userDao;

    // 继承 CrudRepository 接口后,就已经有通用的 CRUD 操作,无需自己来书写这些方法==============
    //添加user对象
    @ParameterizedTest
    @CsvSource({"aa,xxx,2", "bb,xxx,3"})
    public void testSave(String name, String password, int age)
    {
        //没有id,save就是添加
        User user = userDao.save(new User(null, name, password, age));
        System.err.println(user);
    }

    //根据id修改对象
    @ParameterizedTest
    @CsvSource({"13,aaa,xxxx,22"})
    public void testUpdate(Integer id, String name, String password, int age)
    {
        //有id,save就是修改
        User user = userDao.save(new User(id, name, password, age));
        System.err.println(user);
    }

    //根据id删除用户对象
    @ParameterizedTest
    @ValueSource(ints = {14})
    public void testDelete(Integer id)
    {
        userDao.deleteById(id);
    }

    //根据id查询对象
    @ParameterizedTest
    @ValueSource(ints = {1})
    public void testFindById(Integer id)
    {
        Optional<User> user = userDao.findById(id);
    }


    //方法名关键字查询---------全自动=====================================================
    //根据名字模糊查询
    @ParameterizedTest
    @ValueSource(strings = {"孙%", "%精"})
    public void testFindByNameLike(String namePattern)
    {
        List<User> users = userDao.findByNameLike(namePattern);
        users.forEach(System.err::println);
    }

    //根据年龄大小进行范围查询
    @ParameterizedTest
    @ValueSource(ints = {500, 10})
    public void testFindByAgeGreaterThan(int startAge)
    {
        List<User> users = userDao.findByAgeGreaterThan(startAge);
        users.forEach(System.err::println);
    }

    //根据年龄大小进行范围查询
    @ParameterizedTest
    @ValueSource(ints = {20})
    public void testFindByAgeLessThan(int age)
    {
        List<User> users = userDao.findByAgeLessThan(age);
        users.forEach(System.err::println);
    }

    //根据年龄区间进行范围查询
    @ParameterizedTest
    @CsvSource({"15,20", "500,1000"})
    public void testFindByAgeBetween(int startAge, int endAge)
    {
        List<User> users = userDao.findByAgeBetween(startAge, endAge);
        users.forEach(System.err::println);
    }


    //@Query 查询 --->自己定义查询语句-----半自动=====================================================================
    //rowMapperClass 或 rowMapperRef 是用来做自定义映射,查询出来的User对象的数据,映射到Student对象的属性上面去都可以,因为是自定义的。

    //根据密码模糊查询
    @ParameterizedTest
    @ValueSource(strings = {"niu%", "%3"})
    public void testFindBySql(String passwordPattern)
    {
        List<User> users = userDao.findBySql(passwordPattern);
        users.forEach(System.err::println);
    }

    //根据年龄范围修改名字
    @ParameterizedTest
    @CsvSource({"牛魔王aa,800,1000"})
    @Transactional
    @Rollback(false)
    public void testUpdateNameByAge(String name, int startAge, int endAge)
    {
        int i = userDao.updateNameByAge(name, startAge, endAge);
    }

    //自己定义的接口,用来实现全手动的查询===================================================================================

    //通过名字进行模糊查询,使用 dataSource
    @ParameterizedTest
    @ValueSource(strings = {"孙%"})
    public void testCustomQueryUsingConnection(String namePattern)
    {
        List<User> users = userDao.customQueryUsingConnection(namePattern);
        users.forEach(System.err::println);
    }

    //通过名字进行模糊查询,使用 jdbcTemplate
    @ParameterizedTest
    @ValueSource(strings = {"孙%"})
    public void testCustomQueryUsingTemplate(String namePattern)
    {
        List<User> users = userDao.customQueryUsingTemplate(namePattern);
        users.forEach(System.err::println);
    }
}

application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
    </parent>
    <groupId>cn.ljh</groupId>
    <artifactId>Spring_Data_JDBC</artifactId>
    <version>1.0.0</version>
    <name>Spring_Data_JDBC</name>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <!-- 导入 spring data jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 1、课程简介 Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。同时还是SpringBoot的基础。在当下的市场开发环境中,Spring占据的地位是非常高的,基本已经成为了开发者绕不过去的框架了。它里面包含了SpringSpringMVC,SpringData(事务),SrpingTest等等。 其中: Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间的各个部分更加独立,达到统一调用执行,使后期维护更加的方便。 SpringMVC本身是对Servlet和JSP的API进行了封装,同时在此基础上进一步加强。它推出的一套注解,可以降低开发人员的学习成本,从而更轻松的做表现层开发。同时,在3.x版本之后,它开始之初Rest风格的请求URL,为开发者提供了开发基于Restful访问规则的项目提供了帮助。 SpringData是一组技术合集。里面包含了JDBCData JPAData Redis,Data Mongodb,Data Rabbit,Data ElasticSearch等等。合集中的每一项都是针对不同数据存储做的简化封装,使我们在操作不同数据库时,以最简洁的代码完成需求功能。 SpringTest它是针对Junit单元测试的整合。让我们在开发中以及开发后期进行测试时,直接使用Junit结合spring一起测试。 本套课程中,我们将全面剖析SpringSpringMVC两个部分。从应用场景分析,到基本用法的入门案例,再到高级特性的分析及使用,最后是执行原理的源码分析。让学生通过学习本套课程不仅可以知其然,还可以知其所以然。最终通过一个综合案例,实现灵活运用Spring框架中的各个部分。 2、适应人群 学习spring,要有一定的Java基础,同时应用过spring基于xml的配置。(或者学习过官网的Spring课程) 学习springmvc,要有一定java web开发基础。同时对spring框架要有一定了解。 3、课程亮点 系统的学习Spring框架中各个部分,掌握Spring中一些高级特性的使用。 l Spring IoC n 设计模式-工厂模式 n 基础应用-入门案例 n 基础应用-常用注解使用场景介绍及入门 n 高级特性-自定义BeanNameGenerator n 高级特性-自定义TypeFilter n 高级特性-ImportSelector和ImportBeanDefinitionRegistrar的分析 n 高级特性-自定义ImportSelector n 高级特性-FilterType中的AspectJTypeFilter的使用 n 高级特性-自定义ImportBeanDefinitionRegistrar n 高级特性-自定义PropertySourceFactory实现解析yaml配置文件 n 源码分析-BeanFactory类视图和常用工厂说明 n 源码分析-AnnotationConfigApplicationContext的register方法 n 源码分析-AnnotationConfigApplicationContext的scan方法 n 源码分析-AbstractApplicationContext的refresh方法 n 源码分析-AbstractBeanFactory的doGetBean方法 l Spring Aop n 设计模式-代理模式 n 编程思想-AOP思想 n 基础应用-入门案例 n 基础应用-常用注解 n 高级应用-DeclareParents注解 n 高级应用-EnableLoadTimeWeaving n 源码分析-@EnableAspectJAutoproxy注解加载过程分析 n 源码分析-AnnotationAwareAspectJAutoProxyCreator n 技术详解-切入点表达式详解 l Spring JDBC n 基础应用-JdbcTemplate的使用 n 源码分析-自定义JdbcTemplate n 设计模式-RowMapper的策略模式 n 高级应用-NamedParameterJdbcTemplate的使用 n 源码分析-TransactionTemplate n 源码分析-DataSourceUtils n 源码分析-TransactionSynchronizationManager
目录结构 尚硅谷_SpringBoot_入门-课程简介 尚硅谷_SpringBoot_入门-Spring Boot简介 尚硅谷_SpringBoot_入门-微服务简介 尚硅谷_SpringBoot_入门-环境准备 尚硅谷_SpringBoot_入门-springboot-helloworld 尚硅谷_SpringBoot_入门-HelloWorld细节-场景启动器(starter) 尚硅谷_SpringBoot_入门-HelloWorld细节-自动配置 尚硅谷_SpringBoot_入门-使用向导快速创建Spring Boot应用 尚硅谷_SpringBoot_配置-yaml简介 尚硅谷_SpringBoot_配置-yaml语法 尚硅谷_SpringBoot_配置-yaml配置文件值获取 尚硅谷_SpringBoot_配置-properties配置文件编码问题 尚硅谷_SpringBoot_配置-@ConfigurationProperties与@Value区别 尚硅谷_SpringBoot_配置-@PropertySource、@ImportResource、@Bean 尚硅谷_SpringBoot_配置-配置文件占位符 尚硅谷_SpringBoot_配置-Profile多环境支持 尚硅谷_SpringBoot_配置-配置文件的加载位置 尚硅谷_SpringBoot_配置-外部配置加载顺序 尚硅谷_SpringBoot_配置-自动配置原理 尚硅谷_SpringBoot_配置-@Conditional&自动配置报告 尚硅谷_SpringBoot_日志-日志框架分类和选择 尚硅谷_SpringBoot_日志-slf4j使用原理 尚硅谷_SpringBoot_日志-其他日志框架统一转换为slf4j 尚硅谷_SpringBoot_日志-SpringBoot日志关系 尚硅谷_SpringBoot_日志-SpringBoot默认配置 尚硅谷_SpringBoot_日志-指定日志文件和日志Profile功能 尚硅谷_SpringBoot_日志-切换日志框架 尚硅谷_SpringBoot_web开发-简介 尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 尚硅谷_SpringBoot_web开发-引入thymeleaf 尚硅谷_SpringBoot_web开发-thymeleaf语法 尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 尚硅谷_SpringBoot_web开发-扩展与全面接管SpringMVC 尚硅谷_SpringBoot_web开发-【实验】-引入资源 尚硅谷_SpringBoot_web开发-【实验】-国际化 尚硅谷_SpringBoot_web开发-【实验】-登陆&拦截器 尚硅谷_SpringBoot_web开发-【实验】-Restful实验要求 尚硅谷_SpringBoot_web开发-【实验】-员工列表-公共页抽取 尚硅谷_SpringBoot_web开发-【实验】-员工列表-链接高亮&列表完成 尚硅谷_SpringBoot_web开发-【实验】-员工添加-来到添加页面 尚硅谷_SpringBoot_web开发-【实验】-员工添加-添加完成 尚硅谷_SpringBoot_web开发-【实验】-员工修改-重用页面&修改完成 尚硅谷_SpringBoot_web开发-【实验】-员工删除-删除完成 尚硅谷_SpringBoot_web开发-错误处理原理&定制错误页面 尚硅谷_SpringBoot_web开发-定制错误数据 尚硅谷_SpringBoot_web开发-嵌入式Servlet容器配置修改 尚硅谷_SpringBoot_web开发-注册servlet三大组件 尚硅谷_SpringBoot_web开发-切换其他嵌入式Servlet容器 尚硅谷_SpringBoot_web开发-嵌入式Servlet容器自动配置原理 尚硅谷_SpringBoot_web开发-嵌入式Servlet容器启动原理 尚硅谷_SpringBoot_web开发-使用外部Servlet容器&JSP;支持 尚硅谷_SpringBoot_web开发-外部Servlet容器启动SpringBoot应用原理 尚硅谷_SpringBoot_Docker-简介 尚硅谷_SpringBoot_Docker-核心概念 尚硅谷_SpringBoot_Docker-linux环境准备 尚硅谷_SpringBoot_Docker-docker安装&启动&停止 尚硅谷_SpringBoot_Docker-docker镜像操作常用命令 尚硅谷_SpringBoot_Docker-docker容器操作常用命令 尚硅谷_SpringBoot_Docker-docker安装MySQL 尚硅谷_SpringBoot_数据访问-简介 尚硅谷_SpringBoot_数据访问-JDBC&自动配置原理 尚硅谷_SpringBoot_数据访问-整合Druid&配置数据源监控 尚硅谷_SpringBoot_数据访问-整合MyBatis(一)-基础环境搭建 尚硅谷_SpringBoot_数据访问-整合MyBatis(二)-注解版MyBatis 尚硅谷_SpringBoot_数据访问-整合MyBatis(二)-配置版MyBatis 尚硅谷_SpringBoot_数据访问-SpringData JPA简介 尚硅谷_SpringBoot_数据访问-整合JPA 尚硅谷_SpringBoot_原理-第一步:创建SpringApplication 尚硅谷_SpringBoot_原理-第二步:启动应用 尚硅谷_SpringBoot_原理-事件监听机制相关测试 尚硅谷_SpringBoot_原理-自定义starter 尚硅谷_SpringBoot_结束语
Spring Boot整合指的是将Spring Boot与其他技术或框架集成在一起,以实现更强大的功能或特性。其中,常见的整合包括数据库整合、Swagger整合等。 对于数据库整合,可以使用Spring Boot提供的JDBC Starter和相应的数据库驱动依赖(如MySQL Connector)来连接数据库并进行数据操作。通过配置数据源的相关参数,可以在应用启动时自动加载对应的自动装配类,实现数据库的初始化和连接。 对于Swagger整合,可以使用Spring Boot提供的Swagger2注解@EnableSwagger2,开启Swagger的注解。通过引入相应的Swagger依赖,可以生成API文档,并提供交互式的API界面,方便开发人员调试和测试API接口。 需要注意的是,Spring Boot的设计目的是简化Spring应用的搭建和开发过程。它采用特定的配置方式,减少了冗余的配置代码,提高了开发效率。同时,Spring Boot也具有自动装配、内嵌服务器等特性,使得应用部署和运行更加方便。 总结起来,Spring Boot整合是通过引入相应的依赖和注解,将Spring Boot与其他技术或框架集成在一起,以实现更强大的功能和特性。常见的整合包括数据库整合和Swagger整合等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JAVA高级篇--springboot自动装配](https://blog.csdn.net/lpt1314/article/details/125943497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [springboot框架整合](https://blog.csdn.net/DDHuao/article/details/130077877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L_J_H_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值