记录一下使用h2内存数据库中出现的问题

这篇博客主要讨论了Spring Boot应用中遇到的数据库相关问题及解决方法。包括:1) bean加载失败,原因是数据库创建时DDL语句中的特殊字段未被正确识别,删除该字段后修复;2) h2数据库配置URL的正确写法;3) SQL查询错误,由于列名使用双引号导致,改用单引号解决;4) SQL插入失败,建议检查SQL语句是否有空格或多余字符;5) 实体类需添加@TableName注解,否则会导致错误。这些常见问题对于Spring Boot开发者来说非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.出现无法加载bean的问题,原因是数据库未能成功创建

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ' XXX'.....
[建表语句]

        定位到DDL建表语句中出现特殊字段,如“CHARACTER“等,不能被识别导致数据库构建失败。删掉就好了;

2.h2数据库配置文件的URL配置

spring.datasource.url=jdbc:h2:mem:[数据库名]?DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;OLD_INFORMATION_SCHEMA=TRUE


spring.datasource.driverClassName =org.h2.Driver
spring.datasource.schema = classpath:sql/DDL.sql

3. 查询语句报错,出现没有在SELECT的列时

Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "2021-12-31" not found

 双引号惹的祸,改成单引号就没问题了!

4.  其他报错SQL插入失败的问题,到SQL文件检查一下,可以有空格、多余的字符等问题,基本都是使用mysql自动导出的SQL语句产生的。

5.需要在实体方法上加入注解@TableName();

没加会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值