【问题标题】:Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException:请求处理失败;嵌套异常是 org.mybatis.spring.MyBatisSystemException:
【发布时间】:2021-12-21 23:51:48
【问题描述】:

当我尝试连接Oracle数据库时,出现以下问题。

有例外

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@3ff2a34f returned null for URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
### The error may exist in file [D:\file\pro\querytest\target\classes\mapperxml\ReportMapper.xml]
### The error may involve com.qt.mapper.ReportMapper.selectAll
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@3ff2a34f returned null for URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE] with root cause

java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@3ff2a34f returned null for URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    at ...

这是我的错误页面

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.


There was an unexpected error (type=Internal Server Error, status=500).
nested exception is org.apache.ibatis.exceptions.
PersistenceException: 
### Error querying database. Cause: 
org.springframework.jdbc.CannotGetJdbcConnectionException: 
Could not get JDBC Connection; nested exception is java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@3ff2a34f returned null for URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE 
### The error may exist in file [D:\file\pro\querytest\target\classes\mapperxml\ReportMapper.xml] ### The error may involve com.qt.mapper.ReportMapper.selectAll 
### The error occurred while executing a query 
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@3ff2a34f returned null for URL:jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

此应用程序.yml

server:
 port: 8081

management:
 endpoints:
  web:
   exposure:
    include: '*'

spring:
 datasource:
  jdbc-url: jdbc:oracle:thin:@xxx.x.xxx.xxx:1521:orcl
  driver-class-name: oracle.jdbc.driver.OracleDriver
  username: xxxx
  password: xxxxx
  hikari:
   minimum-idle: 2
   maximum-pool-size: 5
   connection-test-query: SELECT 1

mybatis:
 configuration:
  map-underscore-to-camel-case: true
 mapper-locations: classpath:mapperxml/*.xml

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

    <groupId>org.example</groupId>
    <artifactId>querytest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath />
    </parent>

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

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

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

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

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

        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>12.2.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>1.5.9.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>

            <!-- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1: -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <verbose>true</verbose>
                    <fork>true</fork>
                    <executable>D:/normal/java/jdk/bin/javac</executable>
                </configuration>
            </plugin>
        </plugins>
        <defaultGoal>compile</defaultGoal>
    </build>


</project>

这个 ReportMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.qt.mapper.ReportMapper">

    <select id="selectAll" resultType="com.qt.bean.Report">
        select * from xxxxx
    </select>

</mapper>

【问题讨论】:

    标签: java oracle spring-boot ojdbc


    【解决方案1】:

    去掉H2依赖并运行?

    <dependency>
         <groupId>com.h2database</groupId>
         <artifactId>h2</artifactId>
         <scope>runtime</scope>
    </dependency>
    

    【讨论】:

    • 应用程序启动失败 ****************************** 描述:无法确定数据库类型 NONE 的嵌入式数据库 url行动:如果你想要一个嵌入式数据库,请在类路径中放置一个受支持的数据库。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。
    • 有异常
    • 我把application.yml转成application.properties,现在可以运行和连接数据库了。虽然不知道application.yml哪里写错了。
    猜你喜欢
    • 2018-05-11
    • 2013-05-06
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多