代码之家  ›  专栏  ›  技术社区  ›  Tristan

jdbcTemplate.update冻结

  •  1
  • Tristan  · 技术社区  · 7 年前

    我使用的是一个没有“transactionManager”的SpringJDBCTemplate,因为我有很多选择要做。

    当我尝试从JUnit调用select查询时,它可以工作,但当我尝试调用“更新”时,它会冻结测试(没有连接超时,没有任何内容,只是等待)。

    我见过jdbcTemplates在没有任何transactionManager的情况下插入/更新的示例,但这可能是问题所在吗?

      public void insert(String param1, String param2) {
    
        String sql = "UPDATE MYTABLE SET name = :param1 where first_name = :param2";
    
        NamedParameterJdbcTemplate npJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
        SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("param1", param1).addValue("param2", param2);
    
        npJdbcTemplate.update(sql, namedParameters);
      }
    
    1 回复  |  直到 7 年前
        1
  •  7
  •   Tristan    7 年前

    这里的问题是,我在SQL客户机(Oracle SQL developer)的同一行上传递了相同的更新查询,但它没有在该客户机中提交。

    我的JUnit被暂停了12个小时,在我在SQLDeveloper中提交查询之后,更新发生在JUnit中。

    它与应用程序中的事务管理或数据源的自动提交状态无关。