我正在编写一个与 DB2 数据库交互的 Spring Boot 应用程序。到目前为止,我已经能够映射实体、创建存储库等等。一切正常。
问题出现在数据库内的注册表中,这些注册表在某种程度上被编码为(不确定)Unicode:当找到特殊字符时,读取该值会引发异常。
尝试使用 DBeaver 识别这个奇怪的字符会导致相同的读取错误。
根据this,这是 JDBC 驱动程序的一个已知问题,可以使用给定的指南绕过。
现在真正的问题...
dbeaver.ini
文件来绕过异常:奇怪的字符被替换为 REPLACMENT CHARACTER(菱形内的问号),因此异常消失了。launch.json
(args 和 vmArgs 属性)、settings.json
、application.properties
...我能得到的最接近的工作是launch.json
(属性args),我可以看到参数正在传递给Java可执行文件(检查控制台输出),但即使异常仍然存在。所以这里真正的问题是:如何避免这种异常?我如何才能在这个 Spring Boot 应用程序中真正利用 IBM DB2 指南?
如有任何帮助,我们将不胜感激!
在 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 应用程序的主类。