h2换hsqldb最新版报错

简介: h2换hsqldb最新版报错

沉溺于追求物质享受,就等于给飞鸟的双翅系上了黄金——佚名

直接改依赖:

<!--<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>${h2.version}</version>
    <scope>test</scope>
</dependency>-->
<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.7.1</version>
    <scope>test</scope>
</dependency>


随便运行一个test报错:

这里提到了关键字:TestDatabaseAutoConfiguration

我们进入org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfiguration$EmbeddedDataSourceFactory.getEmbeddedDatabase(TestDatabaseAutoConfiguration.java:191)

发现这里连接为空才会抛异常

那我们ctrl+f8断点打在if这里,shift+f9debug一下

发现进入了EmbeddedDatabaseConnection.get

F7再回车,深入get方法,发现这里的逻辑是如果driverClass存在,则返回对应的连接枚举EmbeddedDatabaseConnection,我们等待hsqldriverClass驱动

f7看下ClassUtils.isPresent,发现是forName

按下f8发现直接到抛出异常返回false了,此时我们丢帧

回到了外面

再按下f7进去,ctrl+w选中forName和参数,按下alt+f8,发现了真正的报错

1
org/hsqldb/jdbc/JDBCDriver 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

大概意思就是说不支持当前java版本了

我们换个早一点的依赖试试:

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.5.2</version>
    <scope>test</scope>
</dependency>

成功运行下来

之后的报错就很容易解决了,是原来H2ddl(Data Definition Language)COMMENT关键字不支持,我们用正则替换掉

ctrl+r打开替换框,alt+x打开正则模式,输入正则后,按下alt+a替换全部

// 以COMMENT开头,直到遇到","为止,我们这里替换为空即可
COMMENT[^,]+
COMMENT[^,]*

我们再试试另一个正则

// 以[ COMMENT ' ]开头,以'结尾,我们这里替换为空即可
COMMENT '.*'

再次运行,发现不支持NULL DEFAULT xxx格式,替换掉DEFAULT前面的NULL

image-20230212231509792.png

再次运行,发现不支持无SQL不执行查询,而是会报错

而且不支持CASE field WHEN conditionValue THEN actualValue的语法

因此换回H2了,ctrl+alt+z,选择pom.xml,按下alt+r或者直接回车

相关文章
XMind2022最新版破解激活教程,亲测可用
Xmind 是一款 全功能 的思维导图和头脑风暴软件。像大脑的瑞士军刀一般,助你理清思路,捕捉创意。
13805 1
|
6月前
Hue安装错误集锦 系统自带的镜像源搞了好久不行,换成sohu的
Hue安装错误集锦 系统自带的镜像源搞了好久不行,换成sohu的
48 0
|
Linux
安装pycuda的正确办法
安装pycuda的正确办法
850 0
|
安全 Windows
Win系统 - Win10不强制更新了,但这2个新功能你必须试试!
Win系统 - Win10不强制更新了,但这2个新功能你必须试试!
152 0
Win系统 - Win10不强制更新了,但这2个新功能你必须试试!
|
缓存 Java
图床失效了?也许你应该试试这个工具
个人博客中的许多图片都裂了无法访问,于是便有了本次的这个工具。 它可以一行命令把你所有 Markdown 写的内容中的图片全部替换为新的图床。
|
缓存 Linux 数据库
Linux安装软件时90%的人会遇到这个报错,如何解决?
Linux安装软件时90%的人会遇到这个报错,如何解决?
172 0
Linux安装软件时90%的人会遇到这个报错,如何解决?
简单粗暴的黑苹果安装教程
首先这是我的电脑配置,当然,玩黑苹果不一定得和我的配置一样~ image.png 这个链接是几乎我用到的所有文件:链接: https://pan.baidu.com/s/1UIVXqkx3XiLbEsGsGbXA_A 提取码: ex3f 全部下载即可 1、做系统盘: 1、准备一个8G以上的U盘 打开上面工具里面的TransMac软件,检测到我们的U盘,然后右击,选择如图所示的第二个:Format Disk for Mac,将我们的U盘转换为Mac格式。
2967 0
Unity 3D换装系统教程/Demo
Unity3D换装系统教程 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1 Costume Change —— 换装系统 1 Costume Change —— 换装系统 END 本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。
1542 0