java - Spring Jdbc模板的更新方法不返回更新的行数

标签 java oracle jdbc spring-jdbc

当用于 Oracle DB 时,我遇到了 Spring Jdbc 模板的奇怪问题。

JDK 版本 - 11.0.3
ojdbc8 版本 - 12.2.0.1
Spring jdbc版本-2.2.4.RELEASE
DB-Oracle-12c

问题:
当我在 Jdbc 模板上调用 update() 方法时,有时它不会返回更新的行数,而是返回“0”。 当我在内存数据库(例如 H2)中运行相同的代码时,一切顺利。
我非常仔细地检查了查询,它们看起来很好。

最佳答案

问题在于 Oracle 中 CHAR 数据类型的处理。
Oracle 对此数据类型进行了正确的填充,而 Jdbc 查询因相等性检查而失败(在我使用此字段的 SQL 查询“WHERE”子句中)。
java端Query中使用RTRIM函数解决了这个问题。

关于java - Spring Jdbc模板的更新方法不返回更新的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61963598/

相关文章:

java - Apache Derby - java.sql.SQLException : Failed to start database

java - IntrumentModels 的任务 : Model class is frozen

java - 代码审查,性能视角

Java 泛型代码错误

java - 为什么 Oracle SQL Developer 在 Mac OS 上启动时出现空指针异常

c# - 使用 Entity Framework 5 从 oracle 包导入程序

java - Prepared Statement 主键存储种子 1 和增量

java - 使用自定义排序规则对 int(非整数)数组进行排序

oracle - oracle中如何删除包含特殊字符的触发器?

java - 服务器空闲后 Hibernate Session 创建异常