Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

358
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda