Crea una conexión de socket con Java
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Abre una conexión de sockets Unix a Cloud SQL para PostgreSQL mediante Java.
Explora más
Para obtener documentación en la que se incluye esta muestra de código, consulta lo siguiente:
Muestra de código
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],[],[],[],null,["# Create a socket connection by using Java\n\nOpen a Unix socket connection to Cloud SQL for PostgreSQL by using Java.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Connect from App Engine flexible environment](/sql/docs/postgres/connect-app-engine-flexible)\n- [Connect from App Engine standard environment](/sql/docs/postgres/connect-app-engine-standard)\n- [Connect from Cloud Build](/sql/docs/postgres/connect-build)\n- [Connect from Cloud Run](/sql/docs/postgres/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/postgres/connect-functions)\n- [Connect using the Cloud SQL Auth Proxy](/sql/docs/postgres/connect-auth-proxy)\n- [Manage database connections](/sql/docs/postgres/manage-connections)\n\nCode sample\n-----------\n\n### Java\n\n\nTo authenticate to Cloud SQL for PostgreSQL, 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.zaxxer.hikari.HikariConfig;\n import com.zaxxer.hikari.HikariDataSource;\n import javax.sql.DataSource;\n\n public class ConnectorConnectionPoolFactory extends ConnectionPoolFactory {\n\n // Note: Saving credentials in environment variables is convenient, but not\n // secure - consider a more secure solution such as\n // Cloud Secret Manager (https://cloud.google.com/secret-manager) to help\n // keep secrets safe.\n private static final String INSTANCE_CONNECTION_NAME =\n System.getenv(\"INSTANCE_CONNECTION_NAME\");\n private static final String INSTANCE_UNIX_SOCKET = System.getenv(\"INSTANCE_UNIX_SOCKET\");\n private static final String DB_USER = System.getenv(\"DB_USER\");\n private static final String DB_PASS = System.getenv(\"DB_PASS\");\n private static final String DB_NAME = System.getenv(\"DB_NAME\");\n\n public static DataSource createConnectionPool() {\n // The configuration object specifies behaviors for the connection pool.\n HikariConfig config = new HikariConfig();\n\n // The following URL is equivalent to setting the config options below:\n // jdbc:postgresql:///\u003cDB_NAME\u003e?cloudSqlInstance=\u003cINSTANCE_CONNECTION_NAME\u003e&\n // socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=\u003cDB_USER\u003e&password=\u003cDB_PASS\u003e\n // See the link below for more info on building a JDBC URL for the Cloud SQL JDBC Socket Factory\n // https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory#creating-the-jdbc-url\n\n // Configure which instance and what database user to connect with.\n config.setJdbcUrl(String.format(\"jdbc:postgresql:///%s\", DB_NAME));\n config.setUsername(DB_USER); // e.g. \"root\", _postgres\"\n config.setPassword(DB_PASS); // e.g. \"my-password\"\n\n config.addDataSourceProperty(\"socketFactory\", \"com.google.cloud.sql.postgres.SocketFactory\");\n config.addDataSourceProperty(\"cloudSqlInstance\", INSTANCE_CONNECTION_NAME);\n\n // Unix sockets are not natively supported in Java, so it is necessary to use the Cloud SQL\n // Java Connector to connect. When setting INSTANCE_UNIX_SOCKET, the connector will \n // call an external package that will enable Unix socket connections.\n // Note: For Java users, the Cloud SQL Java Connector can provide authenticated connections\n // which is usually preferable to using the Cloud SQL Proxy with Unix sockets.\n // See https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory for details.\n if (INSTANCE_UNIX_SOCKET != null) {\n config.addDataSourceProperty(\"unixSocketPath\", INSTANCE_UNIX_SOCKET);\n }\n\n\n // cloudSqlRefreshStrategy set to \"lazy\" is used to perform a\n // refresh when needed, rather than on a scheduled interval.\n // This is recommended for serverless environments to\n // avoid background refreshes from throttling CPU.\n config.addDataSourceProperty(\"cloudSqlRefreshStrategy\", \"lazy\");\n\n // ... Specify additional connection properties here.\n // ...\n\n // Initialize the connection pool using the configuration object.\n return new HikariDataSource(config);\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=cloud_sql_postgres)."]]