S.H.L.L.D. 2024-03-30 01:53 采纳率: 0%
浏览 11

Java无法连接数据库提取信息

帮帮我谁能想问一下它显示这个有问题但我不知道为啥
这个是我跑完后端的反馈


C:\Users\M1581\.jdks\openjdk-21.0.2\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Users\M1581\AppData\Local\JetBrains\IntelliJ IDEA 2023.3.4\lib\idea_rt.jar=51627:C:\Users\M1581\AppData\Local\JetBrains\IntelliJ IDEA 2023.3.4\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\M1581\Desktop\demo\target\classes;C:\Users\M1581\.m2\repository\com\alibaba\druid-spring-boot-starter\1.1.13\druid-spring-boot-starter-1.1.13.jar;C:\Users\M1581\.m2\repository\com\alibaba\druid\1.1.13\druid-1.1.13.jar;C:\Users\M1581\.m2\repository\org\slf4j\slf4j-api\2.0.12\slf4j-api-2.0.12.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.2.4\spring-boot-autoconfigure-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot\3.2.4\spring-boot-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.2.4\spring-boot-starter-web-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter\3.2.4\spring-boot-starter-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.2.4\spring-boot-starter-logging-3.2.4.jar;C:\Users\M1581\.m2\repository\ch\qos\logback\logback-classic\1.4.14\logback-classic-1.4.14.jar;C:\Users\M1581\.m2\repository\ch\qos\logback\logback-core\1.4.14\logback-core-1.4.14.jar;C:\Users\M1581\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.21.1\log4j-to-slf4j-2.21.1.jar;C:\Users\M1581\.m2\repository\org\apache\logging\log4j\log4j-api\2.21.1\log4j-api-2.21.1.jar;C:\Users\M1581\.m2\repository\org\slf4j\jul-to-slf4j\2.0.12\jul-to-slf4j-2.0.12.jar;C:\Users\M1581\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\M1581\.m2\repository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.2.4\spring-boot-starter-json-3.2.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.15.4\jackson-databind-2.15.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.15.4\jackson-annotations-2.15.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.15.4\jackson-core-2.15.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.15.4\jackson-datatype-jdk8-2.15.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.15.4\jackson-datatype-jsr310-2.15.4.jar;C:\Users\M1581\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.15.4\jackson-module-parameter-names-2.15.4.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.2.4\spring-boot-starter-tomcat-3.2.4.jar;C:\Users\M1581\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.19\tomcat-embed-core-10.1.19.jar;C:\Users\M1581\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.19\tomcat-embed-el-10.1.19.jar;C:\Users\M1581\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.19\tomcat-embed-websocket-10.1.19.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-web\6.1.5\spring-web-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-beans\6.1.5\spring-beans-6.1.5.jar;C:\Users\M1581\.m2\repository\io\micrometer\micrometer-observation\1.12.4\micrometer-observation-1.12.4.jar;C:\Users\M1581\.m2\repository\io\micrometer\micrometer-commons\1.12.4\micrometer-commons-1.12.4.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-webmvc\6.1.5\spring-webmvc-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-aop\6.1.5\spring-aop-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-context\6.1.5\spring-context-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-expression\6.1.5\spring-expression-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-core\6.1.5\spring-core-6.1.5.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-jcl\6.1.5\spring-jcl-6.1.5.jar;C:\Users\M1581\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.0\mybatis-spring-boot-starter-2.2.0.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\3.2.4\spring-boot-starter-jdbc-3.2.4.jar;C:\Users\M1581\.m2\repository\com\zaxxer\HikariCP\5.0.1\HikariCP-5.0.1.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-jdbc\6.1.5\spring-jdbc-6.1.5.jar;C:\Users\M1581\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.0\mybatis-spring-boot-autoconfigure-2.2.0.jar;C:\Users\M1581\.m2\repository\org\mybatis\mybatis\3.5.7\mybatis-3.5.7.jar;C:\Users\M1581\.m2\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;C:\Users\M1581\.m2\repository\org\springframework\boot\spring-boot-starter-data-jdbc\3.2.4\spring-boot-starter-data-jdbc-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\data\spring-data-jdbc\3.2.4\spring-data-jdbc-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\data\spring-data-relational\3.2.4\spring-data-relational-3.2.4.jar;C:\Users\M1581\.m2\repository\com\github\jsqlparser\jsqlparser\4.6\jsqlparser-4.6.jar;C:\Users\M1581\.m2\repository\org\springframework\data\spring-data-commons\3.2.4\spring-data-commons-3.2.4.jar;C:\Users\M1581\.m2\repository\org\springframework\spring-tx\6.1.5\spring-tx-6.1.5.jar;C:\Users\M1581\.m2\repository\org\apache\ibatis\ibatis-core\3.0\ibatis-core-3.0.jar;C:\Users\M1581\.m2\repository\mysql\mysql-connector-java\8.0.26\mysql-connector-java-8.0.26.jar;C:\Users\M1581\.m2\repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar com.example.demo.DemoApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.4)

2024-03-29T17:48:17.751Z  INFO 10652 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication using Java 21.0.2 with PID 10652 (C:\Users\M1581\Desktop\demo\target\classes started by M1581 in C:\Users\M1581\Desktop\demo)
2024-03-29T17:48:17.753Z  INFO 10652 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to 1 default profile: "default"
2024-03-29T17:48:18.238Z  INFO 10652 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JDBC repositories in DEFAULT mode.
2024-03-29T17:48:18.252Z  INFO 10652 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 11 ms. Found 0 JDBC repository interfaces.
2024-03-29T17:48:18.638Z  INFO 10652 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-03-29T17:48:18.650Z  INFO 10652 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-03-29T17:48:18.650Z  INFO 10652 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.19]
2024-03-29T17:48:18.706Z  INFO 10652 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-03-29T17:48:18.706Z  INFO 10652 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 898 ms
2024-03-29T17:48:19.033Z  WARN 10652 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine a suitable driver class
2024-03-29T17:48:19.036Z  INFO 10652 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2024-03-29T17:48:19.058Z  INFO 10652 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-03-29T17:48:19.072Z ERROR 10652 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).


Process finished with exit code 1

而这是我的源代码

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/frimstart?serverTimezone=GMT%2b8
      username: root
      password: 123456
      min-idle: 5
      initial-size: 5
      max-active: 20
      max-wait: 30000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: select '1' from dual
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      pool-prepared-statements: true
      max-open-prepared-statements: 20
      max-pool-prepared-statement-per-connection-size: 20

      filter:
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMills=500
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: false
        login-username: JayZhao
        login-password: 159567
      filters:
        stat:
          log-slow-sql: true
  mvc:
    hiddenmethod:
      filter:
        enabled: true
  web:
    resources:
      static-locations: classpath:/
mybatis:
  mapper-locations: classpath:mapper/*.xml
logging:
  file:
    path: C:/mylogs
server:
  port: 8080
  servlet:
    encoding:
      charset: utf-8
      enabled: true
      force: true
  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-30 01:53
    关注

    引自免费微信小程序:皆我百晓生

    在Java中,要解决无法连接数据库并获取数据的问题,我们可以采用以下步骤:

    1. 配置MySQL数据库连接池:首先,我们需要配置一个 Druid 数据库连接池,这通常通过以下类实现:
    import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    import org.springframework.jdbc.datasource.config.DataSourcePropertiesInitializer;
    
    @Configuration
    public class DataSourceConfig {
    
        @Bean
        public DriverManagerDataSource dataSource() {
            return new DriverManagerDataSource(
                new String[]{jdbc:mysql://localhost:3306/frimstart},
                new String[]{"root", "123456"},
                new ClassLoader())
                .setDriverClassName("com.mysql.cj.jdbc.Driver");
        }
    
        // 配置其他数据库连接参数(如列宽、连接超时等)
    }
    
    
    1. 设置数据库连接属性:根据您的具体需求,将数据库连接配置到DataSourceProperties对象中。例如,如果要配置 MySQL 数据库:
    @Configuration
    public class DatabaseConfig {
    
        @Bean
        public DataSourceProperties dataSourceProperties() {
            return new DataSourceProperties()
                .driverClassName("com.mysql.cj.jdbc.Driver")
                .url("jdbc:mysql://localhost:3306/frimstart")
                .username("root")
                .password("123456")
                .initialSize(5)
                .maxActive(20)
                .maxWait(30000)
                .timeBetweenEvictionRunsMillis(60000)
                .minEvictableIdleTimeMillis(300000)
                .validationQuery("select '1' from dual")
                .testWhileIdle(true)
                .testOnBorrow(false)
                .testOnReturn(false)
                .poolPreparedStatements(true)
                .maxOpenPreparedStatements(20)
                .maxPoolPreparedStatementPerConnectionSize(20);
        }
    }
    
    1. 创建驱动接口:由于我们没有创建具体的 Mapper 实现,我们将定义一个 JDBC 网络映射接口(JDBC 物理层的接口)用于与 SQL 查询操作相关。
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public interface Driver {
        Connection getConnection(String url) throws SQLException;
    }
    
    1. 添加 JDBI 标准驱动:在业务代码中,我们将使用 Apache Commons HttpClient 库中的 HttpClient 类调用 JDBC API 进行网络请求,并实例化对应的 JDBC 驱动接口进行连接。示例代码如下:
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.protocol.HTTP;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestTemplate;
    
    @Service
    public class Main {
        @Autowired
        private RestTemplate restTemplate;
    
        public void executeScript(String sql) {
            try (CloseableHttpResponse response = restTemplate.getForObject("jdbc:mysql://localhost:3306/frimstart?serverTimezone=GMT%2b8&username=root&password=123456", Driver.class, sql)) {
                String responseBody = EntityUtils.toString(response.getEntity());
                System.out.println(responseBody);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    
    1. 启动应用程序:运行主类并使用以下命令启动应用,包括初始化 MySQL 数据库连接池、驱动接口、Java Web 请求以及调用 JDBC 功能获取数据。
    java -jar demo.jar
    

    请注意,上述代码片段仅为示例,实际项目中可能需要根据业务需求对数据库连接参数、URL、登录凭据、mapper映射接口实现、网络请求方式(GET、POST等)、HttpEntity等进行调整。另外,为了更好地展示如何配置 Druid 数据库连接池,代码中使用了 Spring Boot AutoConfigure 注解,其中包括了数据库驱动类、URL、用户名和密码等配置。

    在整个过程中,您需要注意以下几点:

    • 在配置 URL 时确保包含数据库服务地址(MySQL 服务器地址),且使用正确格式(如 "jdbc:mysql://localhost:3306/frimstart")。
    • 为驱动接口指定所需的 JDBC 方法(例如 getConnection()),确保其具有正确的输入参数(如数据库URL、用户名、密码等)。
    • 使用 Spring Boot 自带的 RestTemplate 实现HTTP GET 请求,以便在业务逻辑中使用 JDBC API 获取数据。
    • 配置 MVC 部分,创建 DataSourcePropertiesInitializer 来读取数据库连接配置,然后在 application.properties 文件中定义数据库配置,如连接属性、过滤器配置等。
    • 编写 <spring-boot-app> 的 Maven 或 Gradle 脚本配置,将其部署到本地服务器上,以启动应用并执行网络请求获取数据。

    当执行 main 方法时,程序会从 jdbc:mysql://localhost:3306/frimstart URL 中获取连接,然后执行 SQL 查询并打印结果。这样就实现了在 Java 中连接到 MySQL 数据库并提取所需数据的功能。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月30日

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)