maven配置sql连接不上

最近我在学习springcloud但是面对Maven创建sql时出了问题,我大致知道是mysql没链接上,或者@Autowired没有自动匹配。

img

img

这个是为测试类加了@SpringBootTest(PaymentApplication.class)和@Runnwith(SpringRunner.class)

img

下面是我的pom,我的sqlyog是5.7.19:

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>testSql</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.7.3</version>
        </dependency>
    </dependencies>



</project>

类上加上这段代码

//xxxx为你Spring boot的启动类
@SpringBootTest(classes = xxxx.class)
@RunWith(SpringRunner.class)

您好,数据源对象的bean配置了吗?比如:
package com.ruoyi.framework.config;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.sql.DataSource;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.util.Utils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.aspectj.lang.enums.DataSourceType;
import com.ruoyi.framework.config.properties.DruidProperties;
import com.ruoyi.framework.datasource.DynamicDataSource;

/**

  • druid 配置多数据源

  • @author ruoyi

  • /
    @Configuration
    public class DruidConfig
    {
    @Bean
    @ConfigurationProperties("spring.datasource.druid.master")
    public DataSource masterDataSource(DruidProperties druidProperties)
    {

      DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
      return druidProperties.dataSource(dataSource);
    

    }

    @Bean
    @ConfigurationProperties("spring.datasource.druid.slave")
    @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
    public DataSource slaveDataSource(DruidProperties druidProperties)
    {

      DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
      return druidProperties.dataSource(dataSource);
    

    }

    @Bean(name = "dynamicDataSource")
    @Primary
    public DynamicDataSource dataSource(DataSource masterDataSource)
    {

      Map<Object, Object> targetDataSources = new HashMap<>();
      targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
      setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
      return new DynamicDataSource(masterDataSource, targetDataSources);
    

    }

    /**

    • 设置数据源
    • @param targetDataSources 备选数据源集合
    • @param sourceName 数据源名称
    • @param beanName bean名称
    • /
      public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
      {
      try
      {
        DataSource dataSource = SpringUtils.getBean(beanName);
        targetDataSources.put(sourceName, dataSource);
      
      }
      catch (Exception e)
      {
      }
      }

    /**

    • 去除监控页面底部的广告

    • /
      @SuppressWarnings({ "rawtypes", "unchecked" })
      @Bean
      @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
      public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
      {
      // 获取web监控页面的参数
      DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
      // 提取common.js的配置路径
      String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
      String commonJsPattern = pattern.replaceAll("\*", "js/common.js");
      final String filePath = "support/http/resources/js/common.js";
      // 创建filter进行过滤
      Filter filter = new Filter()
      {

        @Override
        public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
        {
        }
      
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException
        {
            chain.doFilter(request, response);
            // 重置缓冲区,响应头不会被重置
            response.resetBuffer();
            // 获取common.js
            String text = Utils.readFromResource(filePath);
            // 正则替换banner, 除去底部的广告信息
            text = text.replaceAll("<a.*?banner\"></a><br/>", "");
            text = text.replaceAll("powered.*?shrek.wang</a>", "");
            response.getWriter().write(text);
        }
      
        @Override
        public void destroy()
        {
        }
      

      };
      FilterRegistrationBean registrationBean = new FilterRegistrationBean();
      registrationBean.setFilter(filter);
      registrationBean.addUrlPatterns(commonJsPattern);
      return registrationBean;
      }
      }
      希望可以帮到你

我感觉有两种可能,第一种是数据库配置某个地方打错了;第二种是依赖冲突的问题,你把Druid-...-starter数据源依赖注释掉,换成druid试试。