squirrel postgres example java database postgresql jdbc

java - example - ¿Es posible especificar el esquema cuando se conecta a postgres con JDBC?



properties postgres (7)

DataSource - setCurrentSchema

Al instanciar una implementación de DataSource , busque un método para establecer el esquema actual / predeterminado.

Por ejemplo, en la clase PGSimpleDataSource , llame a setCurrentSchema .

org.postgresql.ds.PGSimpleDataSource dataSource = new org.postgresql.ds.PGSimpleDataSource ( ); dataSource.setServerName ( "localhost" ); dataSource.setDatabaseName ( "your_db_here_" ); dataSource.setPortNumber ( 5432 ); dataSource.setUser ( "postgres" ); dataSource.setPassword ( "your_password_here" ); dataSource.setCurrentSchema ( "your_schema_name_here_" ); // <----------

¿Es posible? ¿Puedo especificarlo en la URL de conexión? ¿Como hacer eso?


A partir de la 9.4 , puede usar el parámetro currentSchema en su cadena de conexión.

Por ejemplo:

jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema



No creo que haya una forma de especificar el esquema en la cadena de conexión. Parece que tienes que ejecutar

set search_path to ''schema''

después de la conexión se hace para especificar el esquema.


No olvide SET SCHEMA ''myschema'' que puede usar en un Statement separado

SET SCHEMA ''valor'' es un alias para SET valor de búsqueda TO valor. Solo se puede especificar un esquema usando esta sintaxis.

Y desde la versión 9.4 y posiblemente versiones anteriores en el controlador JDBC, existe soporte para el setSchema(String schemaName) .


Sé que esto ya fue respondido, pero me encontré con el mismo problema al tratar de especificar el esquema que se utilizará para la línea de comandos de liquibase.

De acuerdo con esto: http://web.archive.org/web/20141025044151/http://postgresql.1045698.n5.nabble.com/Patch-to-allow-setting-schema-search-path-in-the-connectionURL-td2174512.html

Puede especificar la url así:

jdbc:postgresql://localhost:5432/mydatabase?searchpath=myschema

Actualización A partir de 9.4 , puede especificar la url con el nuevo parámetro currentSchema de esta manera:

jdbc:postgresql://localhost:5432/mydatabase?currentSchema=myschema


Si es posible en su entorno, también puede establecer el esquema predeterminado del usuario en el esquema deseado:

ALTER USER user_name SET search_path to ''schema''