在 VSCode 中使用 Spring Boot 和 IBM DB2 的编码问题

问题描述 投票:0回答:1

我正在编写一个与 DB2 数据库交互的 Spring Boot 应用程序。到目前为止,我已经能够映射实体、创建存储库等等。一切正常。

问题出现在数据库内的注册表中,这些注册表在某种程度上被编码为(不确定)Unicode:当找到特殊字符时,读取该值会引发异常。

尝试使用 DBeaver 识别这个奇怪的字符会导致相同的读取错误。

根据this,这是 JDBC 驱动程序的一个已知问题,可以使用给定的指南绕过。

现在真正的问题...

  • 在 DBeaver 中,我能够通过将建议添加到
    dbeaver.ini
    文件来绕过异常:奇怪的字符被替换为 REPLACMENT CHARACTER(菱形内的问号),因此异常消失了。
  • 在 VSCode 中,我尝试了几乎所有方法来告知所需的 Java 参数:
    launch.json
    argsvmArgs 属性)、
    settings.json
    application.properties
    ...我能得到的最接近的工作是
    launch.json
    (属性args),我可以看到参数正在传递给Java可执行文件(检查控制台输出),但即使异常仍然存在。

所以这里真正的问题是:如何避免这种异常?我如何才能在这个 Spring Boot 应用程序中真正利用 IBM DB2 指南?

如有任何帮助,我们将不胜感激!

java spring-boot visual-studio-code jdbc db2
1个回答
0
投票

在 VS Code 中,您可以通过修改

"-Ddb2.jcc.charsetDecoderEncoder=3"
文件中的
vmArgs
属性来添加 JVM 参数
launch.json

{
    "configurations": [
        {
            "type": "java",
            "name": "Launch Spring Boot App",
            "request": "launch",
            "mainClass": "com.example.MyApplication",
            "projectName": "spring-project-name",
            "vmArgs": "-Ddb2.jcc.charsetDecoderEncoder=3"
        }
    ]
}

com.example.MyApplication
替换为 Spring Boot 应用程序的主类。

© www.soinside.com 2019 - 2024. All rights reserved.