Est-il possible de spécifier le schéma lors de la connexion à postgres avec JDBC?
Est-il possible? Puis-je le préciser sur l'URL de connexion? Comment faire?
Vous devez vous connecter pour publier un commentaire.
Est-il possible? Puis-je le préciser sur l'URL de connexion? Comment faire?
Vous devez vous connecter pour publier un commentaire.
Je sais que cela a été déjà répondu, mais je viens de tomber sur le même problème en essayant de préciser le schéma à utiliser pour le liquibase ligne de commande.
Mise à jour
Comme de JDBC v9.4 vous pouvez spécifier l'url avec la nouvelle currentSchema paramètre comme ceci:
Semble être basé sur une version antérieure du patch:
http://web.archive.org/web/20141025044151/http://postgresql.1045698.n5.nabble.com/Patch-to-allow-setting-schema-search-path-in-the-connectionURL-td2174512.html
Qui proposait l'url comme ceci:
setSchema
méthode après la création de votre connexion. Fonctionne pour moi avec une récente postgres pilote.postgresql-9.4.1209.jdbc42.jar
a travaillé avec un9.5
base de données et le?currentSchema=myschema
de la syntaxe.De version 9.4, vous pouvez utiliser le
currentSchema
paramètre dans votre chaîne de connexion.Par exemple:
Si c'est possible dans votre environnement, vous pouvez également définir par défaut de l'utilisateur de schéma à votre schéma souhaité:
Je ne crois pas qu'il existe un moyen de spécifier le schéma dans la chaîne de connexion. Il semble que vous avez à exécuter
après que la connexion est faite pour spécifier le schéma.
Statement statement = connection.createStatement(); try { statement.execute("set search_path to '" + schema + "'"); } finally { statement.close(); }
J'ai présenté une version mise à jour de patch pour le pilote JDBC PostgreSQL pour activer cette quelques années en arrière. Vous devrez construire des PostreSQL pilote JDBC à partir de la source (après l'ajout du patch) pour l'utiliser:
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
http://jdbc.postgresql.org/
DataSource
–setCurrentSchema
Lors de l'instanciation d'un
source de données
mise en œuvre, de rechercher une méthode pour régler l'heure/le schéma par défaut.Par exemple, sur la
PGSimpleDataSource
appel de classesetCurrentSchema
.Si spécifié, Postgres tente de se connecter à un schéma nommé
public
.search_path
N'oubliez pas
DÉFINIR le SCHÉMA "monschema'
que vous pourriez utiliser dans une Déclaration séparée,Et depuis 9.4 et éventuellement des versions antérieures du pilote JDBC, il ya un soutien pour les
setSchema(String schemaName)
méthode.En Aller avec "sql.DB" (notez les
search_path
avec un trait de soulignement):