É possível? Posso especificá-lo no URL de conexão? Como fazer isso?
java
database
postgresql
jdbc
database-schema
marcosbeirigo
fonte
fonte
setSchema
método JDCB depois de criar sua conexão. Funciona para mim com um driver recente do postgres.postgresql-9.4.1209.jdbc42.jar
trabalhamos em conjunto com um9.5
banco de dados e a?currentSchema=myschema
sintaxe.A partir da versão 9.4 , você pode usar o
currentSchema
parâmetro na sua cadeia de conexão.Por exemplo:
fonte
Se for possível no seu ambiente, você também pode definir o esquema padrão do usuário para o esquema desejado:
fonte
Não acredito que haja uma maneira de especificar o esquema na cadeia de conexão. Parece que você precisa executar
após a conexão ser feita para especificar o esquema.
fonte
Statement statement = connection.createStatement(); try { statement.execute("set search_path to '" + schema + "'"); } finally { statement.close(); }
Enviei uma versão atualizada de um patch para o driver JDBC do PostgreSQL para ativar isso alguns anos atrás. Você precisará criar o driver JDBC PostreSQL a partir da fonte (após adicionar o patch) para usá-lo:
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
http://jdbc.postgresql.org/
fonte
DataSource
-setCurrentSchema
Ao instanciar uma
DataSource
implementação, procure um método para definir o esquema atual / padrão.Por exemplo, na
PGSimpleDataSource
chamada de classesetCurrentSchema
.Se você deixar o esquema não especificado, o Postgres assumirá como padrão o esquema nomeado
public
no banco de dados. Consulte o manual, seção 5.9.2 O esquema público . Para citar o manual do chapéu:fonte
search_path
Não esqueça
SET SCHEMA 'myschema'
que você poderia usar em uma declaração separadaE desde as versões 9.4 e possivelmente anteriores no driver JDBC, há suporte para o
setSchema(String schemaName)
método.fonte
Em Vá com "sql.DB" (observe o
search_path
sublinhado):fonte
Isso já foi respondido:
jdbc: postgresql: // localhost: 5432 / mydatabase? currentSchema = myschema
Como nas respostas anteriores, a cadeia de conexão acima simplesmente funciona.
Eu verifiquei e está tudo bem: https://youtu.be/m0lBUHSLkNM?t=79
(Embora a resposta aceita tenha sido dada há 8 anos, foi editada há 1 ano...)
fonte