You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring JDBC JdbcTemplate插入操作未提交问题求助

Spring JDBC JdbcTemplate插入操作未提交问题求助

各位大佬好,最近碰到个卡了我好几天的问题,想请大家帮忙看看:我用Spring JDBC的JdbcTemplate往Firebird数据库插入数据,执行完后日志显示影响了行数,但数据库里死活查不到新数据,感觉像是操作根本没提交一样。

先跟大家说下我的项目背景:

  • 项目是Spring Boot栈,原本用Spring JPA连接PostgreSQL,一切功能都正常
  • 现在需要新增对接另一个Firebird数据库,所以用Spring JDBC来操作这个库的表

为了排查问题,我专门在Firebird里建了个极简的测试表:

CREATE TABLE table_master
(
    id       INTEGER NOT NULL,
    name     VARCHAR(200),
    CONSTRAINT t_master_pk PRIMARY KEY (id)
);

然后按照Spring官方文档的示例写了个测试类,核心代码大概是这样的:

@SpringBootTest
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@Slf4j
class JdbcTest {
    private DataSource fbDataSource;

    @Autowired
    private PlatformTransactionManager transactionManager;

    @BeforeEach
    public void setUp() {
        HikariConfig config = new HikariConfig();
        // 这里配置了Firebird的驱动类、数据库URL、用户名和密码
        config.setDriverClassName("org.firebirdsql.jdbc.FBDriver");
        config.setJdbcUrl("jdbc:firebirdsql://xxx.xxx.xxx.xxx:3050/xxxx.fdb");
        config.setUsername("sysdba");
        config.setPassword("xxxx");
        fbDataSource = new HikariDataSource(config);
    }

    @Test
    @Order(1)
    void testInsert() {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(fbDataSource);
        String sql = "INSERT INTO table_master (id, name) VALUES (?, ?)";
        int affectedRows = jdbcTemplate.update(sql, 1, "测试数据");
        log.info("插入操作影响行数:{}", affectedRows);
        // 日志里明明显示影响了1行,但Firebird库里就是查不到这条数据
    }
}

我自己也琢磨了几个可能的原因,但还没排查出结果:

  • 会不会是Firebird数据源的autoCommit属性被默认关闭了?但我没手动设置过这个参数啊,Spring JDBC不是默认应该自动提交吗?
  • 项目里同时存在PostgreSQL和Firebird两个数据源,我@Autowired进来的transactionManager会不会是对应PostgreSQL的那个,根本没管Firebird这边的事务?
  • 有没有可能是Firebird的JDBC驱动版本和HikariCP不兼容?或者驱动本身有什么特殊的事务处理要求?

有没有老哥遇到过类似的问题?或者能给我点调试排查的方向?实在是卡得没辙了,谢谢大家!

备注:内容来源于stack exchange,提问作者BUKTOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:19:32