¿Es posible? ¿Puedo especificarlo en la URL de conexión? ¿Como hacer eso?
java
database
postgresql
jdbc
database-schema
marcosbeirigo
fuente
fuente
setSchema
método JDCB después de crear su conexión. Funciona para mí con un controlador reciente de postgres.postgresql-9.4.1209.jdbc42.jar
trabajamos junto con una9.5
base de datos y la?currentSchema=myschema
sintaxis.A partir de la versión 9.4 , puede usar el
currentSchema
pará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
-setCurrentSchema
Al crear instancias de una
DataSource
implementación, busque un método para establecer el esquema actual / predeterminado.Por ejemplo, en la
PGSimpleDataSource
llamada de clasesetCurrentSchema
.Si deja el esquema sin especificar, Postgres por defecto es un esquema nombrado
public
dentro 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_path
No 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_path
guió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