Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

355
Views
Generador de URI/URL para URL de JDBC

Estoy tratando de agregar idiomáticamente algunos parámetros de consulta nuevos a una URL de JDBC, pero los constructores de URI que están a mi disposición no funcionan correctamente con URL como

jdbc:postgres://localhost:6542/db

Parece que no reconocen correctamente el esquema (en este caso, jdbc:postgres) y asumen erróneamente que el esquema es jdbc .

¿Hay alguna forma idiomática de agregar parámetros de consulta a una URL de JDBC?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No existe tal mecanismo, porque esos creadores de URL generalmente están destinados a URL compatibles con RFC 3986 (tal vez incluso solo diseñados para usar con el esquema http y https ), y las URL de JDBC no son compatibles.

De hecho, JDBC 4.3 solo especifica lo siguiente:

El formato de una URL de JDBC es:

  • jdbc:<subprotocolo>:<subnombre>

donde subprotocol define el tipo de mecanismo de conectividad de base de datos que puede ser compatible con uno o más controladores. El contenido y la sintaxis del subname dependerán del subprotocolo.


Nota : no se requiere una URL de JDBC para adherirse completamente a la sintaxis de URI como se define en RFC 3986, Identificador uniforme de recursos (URI): sintaxis genérica.


Como resultado de esta definición, prácticamente cualquier cosa es válida para subname . Algunos controladores parecerán imitar RFC 3986, pero es posible que no requieran o admitan escapes. Algunos controladores admiten parámetros (propiedades) en la URL, mientras que otros no. Algunos pueden usar ? y & para separar propiedades, mientras que otros pueden usar ; , etc.

Para PostgreSQL, puede salirse con la suya usando un generador de URL en postgres://localhost:6542/db y agregando el prefijo jdbc: después de compilar, pero no estoy seguro de si PostgreSQL es compatible con todas las funciones de una URL RFC 3986, por lo que aún podría terminar con una URL que el controlador no puede analizar correctamente.

Como se sugiere en los comentarios de Laurenz Albe , considere usar un objeto de Properties (cuando use DriverManager directamente), o use mecanismos de su fuente de datos para establecer propiedades, en lugar de confiar en pasar esas propiedades a través de la URL.

Por ejemplo, al usar DriverManager , usaría:

 String url = "jdbc:postgres://localhost:6542/db"; Properties props = new Properties(); props.setProperty("user", username); props.setProperty("password", password); props.setProperty("property1", "value1"); // ... try (Connection connection = DriverManager.getConnection(url, props)) { // use connection }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!