有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java可以在JDBCIO中执行多个insert查询。使用apache beam管道在单CloudSQL连接中编写函数?

我正在使用apachebeam的JDBCIO.write()函数将流数据写入cloudSQL。根据我的要求,我必须在两个不同的表中写入相同的数据
实际上,我正在创建两个不同的JDBCIO连接来在cloudSQL表中写入数据
有没有办法在单个JDBCIO.write()函数中编写两个插入查询

outputStringPcollection
            .apply("Write to CloudSQL table",
                    JdbcIO.<String> write()
                            .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration
                                    .create(DRIVER_CLASS_NAME,
                                            URL)
                                    .withUsername(USERNAME)
                                    .withPassword(PASSWORD)
                            .withStatement(insertQueryTable1)
                            .withPreparedStatementSetter(new SetQueryParameter())
                            .withStatement(insertQueryTable2)
                            .withPreparedStatementSetter(new SetQueryParameter()));

我试图通过在单个JDBC连接中编写两个不同的insert查询来执行上述代码,但数据只插入到一个表中(即表2)

那么,我们可以在单个连接中执行多个查询吗?如果是,还有其他方法吗

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    不,不能在单个连接中完成。您所能做的就是:

    JdbcIO<String> configuredWrite = JdbcIO.<String>.withDataSourceConfiguration(...);
    
    outputStringPcollection.apply(configuredWrite.withStatement(s1)...);
    
    outputStringPcollection.apply(configuredWrite.withStatement(s2)...);