使用 SET 语句通过 JDBC 指定查询选项。
包含此代码示例的文档页面
如需查看上下文中使用的代码示例,请参阅以下文档:
代码示例
Java
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
class SetQueryOptionsExample {
static void setQueryOptions() throws SQLException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project";
String instanceId = "my-instance";
String databaseId = "my-database";
setQueryOptions(projectId, instanceId, databaseId);
}
@SuppressFBWarnings(
value = "OBL_UNSATISFIED_OBLIGATION",
justification = "https://github.com/spotbugs/spotbugs/issues/293")
static void setQueryOptions(String projectId, String instanceId, String databaseId)
throws SQLException {
String connectionUrl =
String.format(
"jdbc:cloudspanner:/projects/%s/instances/%s/databases/%s",
projectId, instanceId, databaseId);
try (Connection connection = DriverManager.getConnection(connectionUrl);
Statement statement = connection.createStatement()) {
// Instruct the JDBC connection to use version '1' of the query optimizer.
statement.execute("SET OPTIMIZER_VERSION='1'");
// Execute a query using the latest optimizer version.
try (ResultSet rs =
statement.executeQuery(
"SELECT SingerId, FirstName, LastName FROM Singers ORDER BY LastName")) {
while (rs.next()) {
System.out.printf("%d %s %s%n", rs.getLong(1), rs.getString(2), rs.getString(3));
}
}
try (ResultSet rs = statement.executeQuery("SHOW VARIABLE OPTIMIZER_VERSION")) {
while (rs.next()) {
System.out.printf("Optimizer version: %s%n", rs.getString(1));
}
}
}
}
}