SpringBoot【问题 03】BindingException\MalformedInputException\Error querying database(sqlite数据库)

简介: SpringBoot【问题 03】BindingException\MalformedInputException\Error querying database(sqlite数据库)

1.类文件具有错误的版本 61.0, 应为 52.0

# JDK8+SpringBoot3.1.0
java.lang.UnsupportedClassVersionError: 
ch/qos/logback/classic/spi/LogbackServiceProvider
 has been compiled by a more recent version of the Java Runtime (class file version 55.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0  
# JDK8+[SpringBoot3.0.0-SpringBoot3.0.7]
Error:(3, 47) java: 无法访问org.springframework.web.bind.annotation.RequestMapping
  错误的类文件: /E:/maven-file/org/springframework/spring-web/6.0.9/spring-web-6.0.9.jar!/org/springframework/web/bind/annotation/RequestMapping.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。
# JDK8+SpringBoot3.0.7 
此时能正常启动项目了【JDK8尚能饭否?】

2.BindingException

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 
[Request processing failed; 
nested exception is org.apache.ibatis.binding.BindingException:
Invalid bound statement (not found): 
com.example.demo.web.mapper.CustomMapper.test] with root cause

这个异常需要两步才能解决:

【Step.1】pom添加指定项目的资源文件的位置。

<resources>
  <resource>
    <directory>src/main/java</directory>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
</resources>

【Step.2】配置文件内指定 Mapper XML 文件的位置。

mybatis-plus:
  mapper-locations: classpath*:/com/example/demo/**/mapper/xml/*.xml

IDEA插件推荐【MyBatisX】

Maper接口写好之后,可以使用插件生成对应的mapper.xml文件:

在接口上右键调用:

选择生成路径:

生成结果:

3.MalformedInputException

org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

这个报错出现的原因是用Spring Initializr生成的配置文件使用的是当前电脑的编码方式GBK,执行时使用的是UTF-8导致的,删除全部中文也能解决问题。需要保留注释信息的话,需要将文件的编码格式调整为UTF-8

4.Error querying database

这里使用的是SQLite数据库,配置信息如下:

spring:
  datasource:
    dynamic:
      datasource:
        master:
          driver-class-name: org.sqlite.JDBC
          url: jdbc:sqlite:demo.sqlite3
          username:
          password:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such table: student)
### The error may exist in file [E:\demo\target\classes\com\example\demo\web\mapper\xml\CustomMapper.xml]
### The error may involve com.example.demo.web.mapper.CustomMapper.test
### The error occurred while executing a query
### SQL: select id, name, age from student
### Cause: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such table: student)] with root cause

目录
相关文章
|
28天前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
39 3
SpringBoot入门 - 添加内存数据库H2
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
52 4
SpringBoot入门(4) - 添加内存数据库H2
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
89 15
|
24天前
|
Java 关系型数据库 数据库连接
使用 Spring Boot 执行数据库操作:全面指南
使用 Spring Boot 执行数据库操作:全面指南
81 1
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
66 13
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
47 4
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
44 8
|
1月前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
24 0
|
SQL 存储 专有云
数据库代码化(Database-as-Code)实战(二)
前言 在数据库代码化(Database-as-Code)实战一文中介绍了如何借助 Flyway 实现 migration based 的数据库迁移。但在实践过程中,发现了如下问题: 随着项目的发展,迁移脚本数量会越来越多,而全新部署时由于要执行所有的历史变更,部署时间会越来越长。
1362 0
|
SQL 存储 专有云
数据库代码化(Database-as-Code)实战
最近在做专有云输出时遇到了一个棘手的问题,客户需要将我们两年前发布的版本升级到最新版。由于跨度较长,产品代码和数据库 schema 都发生了巨大变化。产品代码部分因为采用了版本管理策略,拥有明确的升级路径,但数据库部分由于未采用代码化方案,导致升级路径缺失,整个升级过程非常艰难。
3053 0