¿Es posible? ¿Puedo especificarlo en la URL de conexión? ¿Como hacer eso?
java
database
postgresql
jdbc
database-schema
marcosbeirigo
fuente
fuente

setSchemamétodo JDCB después de crear su conexión. Funciona para mí con un controlador reciente de postgres.postgresql-9.4.1209.jdbc42.jartrabajamos junto con una9.5base de datos y la?currentSchema=myschemasintaxis.A partir de la versión 9.4 , puede usar el
currentSchemaparámetro en su cadena de conexión.Por ejemplo:
fuente
Si es posible en su entorno, también puede establecer el esquema predeterminado del usuario para su esquema deseado:
fuente
No creo que haya una manera de especificar el esquema en la cadena de conexión. Parece que tienes que ejecutar
después de realizar la conexión para especificar el esquema.
fuente
Statement statement = connection.createStatement(); try { statement.execute("set search_path to '" + schema + "'"); } finally { statement.close(); }Envié una versión actualizada de un parche al controlador JDBC de PostgreSQL para habilitar esto hace unos años. Tendrá que compilar el controlador JDBC PostreSQL desde la fuente (después de agregar el parche) para usarlo:
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
http://jdbc.postgresql.org/
fuente
DataSource-setCurrentSchemaAl crear instancias de una
DataSourceimplementación, busque un método para establecer el esquema actual / predeterminado.Por ejemplo, en la
PGSimpleDataSourcellamada de clasesetCurrentSchema.Si deja el esquema sin especificar, Postgres por defecto es un esquema nombrado
publicdentro de la base de datos. Consulte el manual, sección 5.9.2 El esquema público . Para citar el manual del sombrero:fuente
search_pathNo olvide
SET SCHEMA 'myschema'cuáles podría usar en una Declaración separadaY desde 9.4 y posiblemente versiones anteriores en el controlador JDBC, hay soporte para el
setSchema(String schemaName)método.fuente
En Ir con "sql.DB" (tenga en cuenta el
search_pathguión bajo):fuente
Esto ya fue respondido:
jdbc: postgresql: // localhost: 5432 / mydatabase? currentSchema = myschema
Como en respuestas anteriores, la cadena de conexión anterior simplemente funciona.
Lo he comprobado y está bien: https://youtu.be/m0lBUHSLkNM?t=79
(Aunque la respuesta aceptada se dio hace 8 años, se editó hace 1 año ...)
fuente