JDBC 批量事务
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
使用 JDBC 执行批处理事务。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# JDBC batch transaction\n\nMake a batch transaction by using JDBC.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Connect JDBC to a GoogleSQL-dialect database](/spanner/docs/use-oss-jdbc)\n\nCode sample\n-----------\n\n### Java\n\n\nTo learn how to install and use the client library for Spanner, see\n[Spanner client libraries](/spanner/docs/reference/libraries).\n\n\nTo authenticate to Spanner, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import com.google.common.collect.ImmutableList;\n import java.math.BigDecimal;\n import java.sql.Connection;\n import java.sql.DriverManager;\n import java.sql.PreparedStatement;\n import java.sql.SQLException;\n import java.util.Arrays;\n\n class BatchDmlExample {\n static class Singer {\n final long singerId;\n final String firstName;\n final String lastName;\n final BigDecimal revenues;\n\n Singer(long singerId, String firstName, String lastName, BigDecimal revenues) {\n this.singerId = singerId;\n this.firstName = firstName;\n this.lastName = lastName;\n this.revenues = revenues;\n }\n }\n\n static void batchDml() throws SQLException {\n // TODO(developer): Replace these variables before running the sample.\n String projectId = \"my-project\";\n String instanceId = \"my-instance\";\n String databaseId = \"my-database\";\n batchDml(projectId, instanceId, databaseId);\n }\n\n // This example shows how to execute a batch of DML statements with the JDBC driver.\n static void batchDml(String projectId, String instanceId, String databaseId) throws SQLException {\n String connectionUrl =\n String.format(\n \"jdbc:cloudspanner:/projects/%s/instances/%s/databases/%s\",\n projectId, instanceId, databaseId);\n\n ImmutableList\u003cSinger\u003e singers = ImmutableList.of(\n new Singer(10, \"Marc\", \"Richards\", BigDecimal.valueOf(10000)),\n new Singer(11, \"Amirah\", \"Finney\", BigDecimal.valueOf(195944.10d)),\n new Singer(12, \"Reece\", \"Dunn\", BigDecimal.valueOf(10449.90))\n );\n\n try (Connection connection = DriverManager.getConnection(connectionUrl)) {\n connection.setAutoCommit(false);\n // Use prepared statements for the lowest possible latency when executing the same SQL string\n // multiple times.\n try (PreparedStatement statement = connection.prepareStatement(\n \"INSERT INTO Singers (SingerId, FirstName, LastName, Revenues)\\n\" \n + \"VALUES (?, ?, ?, ?)\")) {\n for (Singer singer : singers) {\n statement.setLong(1, singer.singerId);\n statement.setString(2, singer.firstName);\n statement.setString(3, singer.lastName);\n statement.setBigDecimal(4, singer.revenues);\n // Add the current parameter values to the batch.\n statement.addBatch();\n }\n // Execute the batched statements.\n int[] updateCounts = statement.executeBatch();\n connection.commit();\n System.out.printf(\"Batch insert counts: %s%n\", Arrays.toString(updateCounts));\n }\n }\n }\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=spanner)."]]