Establecer las propiedades de conexión

Las propiedades de las cadenas de conexión se pueden especificar de diversas formas:

  • Como propiedades nombre=valor en la dirección URL de conexión cuando la conexión se establece con la clase DriverManager.

  • Como propiedades nombre=valor en el parámetro Properties del método Connect de la clase DriverManager.

  • Como valores en el método establecedor adecuado del origen de datos del controlador. Por ejemplo:

              datasource.setServerName(value)
    datasource.setDatabaseName(value)
    

En los nombres de las propiedades no se distinguen entre mayúsculas y minúsculas, y los duplicados se resuelven de la siguiente forma:

  1. Argumentos de API (como usuario y contraseña)

  2. Colección de propiedades

  3. Última aparición de la cadena de conexión

Además, se permiten valores desconocidos para los nombres de propiedades, el controlador JDBC no valida sus valores en relación a la distinción entre mayúsculas y minúsculas.

Se permite el uso de sinónimos que se resuelven en el mismo orden que los nombres de propiedades duplicados.

La siguiente tabla muestra todas las propiedades de cadena de conexión disponibles actualmente para el controlador JDBC.

Propiedad Tipo Valor predeterminado Descripción

applicationName

String

[<=128 car.]

null

Nombre de la aplicación o "controlador JDBC de Microsoft SQL Server 2005" si no se le asigna un nombre. Se usa para identificar la aplicación específica en diversas herramientas de creación de perfiles y registros de SQL Server.

databaseName, base de datos

String

[<=128 car.]

null

Nombre de la base de datos a la que se conectará. Si no se especifica, se establece una conexión a la base de datos predeterminada.

disableStatementPooling

boolean

["true"|"false"]

true

Actualmente sólo se admite el valor "true". Si se estableciera en "false", se produciría una excepción.

encrypt

boolean

["true"|"false"]

false

Se establece en "true" para especificar que SQL Server utiliza el cifrado de Capa de sockets seguros (SSL) para todos los datos enviados entre el cliente y el servidor, si el servidor tiene un certificado instalado. El valor predeterminado es false.

failoverPartner

String

null

Nombre del servidor de conmutación por error que se usa en la configuración de la creación de reflejo de la base de datos. Esta propiedad se usa para un error de conexión inicial con el servidor principal; una vez establecida la conexión inicial, se omite esta propiedad. Se debe usar junto con la propiedad databaseName.

hostNameInCertificate

String

null

Nombre de host que se va a utilizar para validar el certificado SSL de SQL Server.

Si la propiedad hostNameInCertificate no se ha especificado o se ha establecido en null, el controlador JDBC de Microsoft SQL Server 2005 utilizará el valor de la propiedad serverName en la dirección URL de conexión como el nombre de host para validar el certificado SSL de SQL Server.

Nota

Esta propiedad se usa junto con las propiedades encrypt y trustServerCertificate. Esta propiedad afecta a la validación del certificado, si y sólo si la propiedad encrypt se establece en "true" y trustServerCertificate se establece en "false".

instanceName

String

[<=128 car.]

null

Nombre de la versión de SQL Server 2000 o de SQL Server 2005 a la que conectarse. Si no se especifica, se establece una conexión a la instancia predeterminada. En el caso de que se especifique el puerto e instanceName, consulte las notas referentes al puerto.

integratedSecurity

boolean

["true"|"false"]

false

Se establece en "true" para indicar que SQL Server va a usar credenciales de Windows para autenticar al usuario de la aplicación. Si el valor es "true", el controlador JDBC busca en la caché de credenciales del equipo local suministradas en el equipo o en el inicio de sesión de red. Si el valor es "false", se deben suministrar el nombre de usuario y la contraseña.

Nota

Esta propiedad de conexión sólo se admite en los sistemas operativos de Microsoft Windows.

lastUpdateCount

boolean

["true"|"false"]

true

El valor "true" sólo devuelve el último recuento de actualizaciones de una instrucción SQL pasada al servidor y se puede usar en instrucciones SELECT, INSERT o DELETE individuales para omitir los recuentos de actualizaciones adicionales generados por los desencadenadores del servidor. Si se establece esta propiedad en "false", se devuelven todos los recuentos de actualizaciones, incluidos los devueltos por los desencadenadores del servidor.

Nota

Esta propiedad sólo se aplica cuando se utiliza con los métodos executeUpdate.

lockTimeout

int

-1

El número de milisegundos que hay que esperar antes de que la base de datos informe del tiempo de espera para la exclusión. El comportamiento predeterminado es esperar indefinidamente. Si se especifica, este valor será el predeterminado para todas las instrucciones de la conexión. Observe que se puede usar Statement.setQueryTimeout() para establecer el tiempo de espera para instrucciones específicas. El valor puede ser 0, lo que significa que no hay espera.

loginTimeout

int [0..65535]

0

Número de segundos que debería esperar el controlador antes de agotar el tiempo de espera de una conexión errónea. Un valor de cero indica que no hay valor de tiempo de espera. Un valor diferente a cero es el número de segundos que debería esperar el controlador antes de agotar el tiempo de espera de una conexión errónea.

packetSize

int [-1| 0 | 512..32767]

8000

El tamaño del paquete de red se usa para establecer la comunicación con SQL Server y se especifica en bytes. El valor -1 indica que se usa el tamaño de paquete de servidor predeterminado. El valor 0 indica que se usa el valor máximo, que es 32767. Si esta propiedad se establece en un valor fuera del intervalo aceptable, se produce una excepción.

Importante

No recomendamos utilizar la propiedad packetSize cuando el cifrado esté habilitado (encrypt=true). De lo contrario, el controlador podría generar un error de conexión. Para obtener más información, vea el método setPacketSize de la clase SQLServerDataSource.

password

String

[<=128 car.]

null

Contraseña de la base de datos.

portNumber, puerto

int [0..65535]

1433

Puerto en el que está escuchando SQL Server. Si se especifica el número del puerto en la cadena de conexión, no se realiza ninguna solicitud a sqlbrowser. Si se especifican el puerto e instanceName, se establece la conexión con el puerto especificado. No obstante, instanceName se valida y se devuelve un error si no coincide con el puerto.

Importante

Se recomienda especificar siempre el número de puerto, ya que es más seguro que usar sqlbrowser.

responseBuffering

String

["full"|"adaptive"]

full

Si esta propiedad se establece en "full", el conjunto de resultados completo se lee del servidor cuando se ejecuta una instrucción. El modo predeterminado es "full" para el controlador JDBC de Microsoft SQL Server 2005 versión 1.2 y proporciona compatibilidad con las versiones anteriores 1.0 y 1.1 del controlador JDBC de Microsoft SQL Server 2005. Cuando esta propiedad se establece en "adaptive", los datos mínimos posibles se almacenan en búfer cuando es necesario. El modo preferido es "adaptive" para el controlador JDBC de Microsoft SQL Server 2005 JDBC versión 1.2.

selectMethod

String

["direct"|"cursor"]

direct

Si esta propiedad se establece en "cursor", se crea un cursor de base de datos para cada consulta que se cree en la conexión para los cursores TYPE_FORWARD_ONLY y CONCUR_READ_ONLY. Esta propiedad normalmente sólo es necesaria si la aplicación genera conjuntos de resultados muy grandes que no se pueden contener completamente en la memoria del cliente. Cuando se establece esta propiedad en "cursor", sólo se retienen en la memoria del cliente un número limitado de filas de los conjuntos de resultados. El comportamiento predeterminado es retener en la memoria del cliente todas las filas de los conjuntos de resultados. Este comportamiento proporciona el rendimiento más rápido cuando la aplicación va a procesar todas las filas.

sendStringParametersAsUnicode

boolean

["true"|"false"]

true

Establezca esta propiedad en "false" para especificar que los parámetros preparados para los datos de caracteres se envíen como ASCII en lugar de Unicode. Este parámetro puede mejorar el rendimiento de la búsqueda de índices de datos de caracteres o tablas de SQL Server 2000, SQL Server 2005 o que no sean Unicode. Por ejemplo, las claves de filas ASCII se pueden comparar directamente sin tener que convertirlas desde Unicode. Para obtener más información, consulte el argumento de Microsoft en support.microsoft.com/kb/271566.

serverName, servidor

String

null

Equipo que ejecuta SQL Server.

userName, usuario

String

[<=128 car.]

null

Usuario de la base de datos.

trustServerCertificate

boolean

["true"|"false"]

false

Establézcalo en "true" para especificar que el controlador JDBC de Microsoft SQL Server 2005 no validará el certificado SSL de SQL Server.

Si es "true", se confía automáticamente en el certificado SSL de SQL Server cuando la capa de la comunicación se cifra utilizando SSL.

Si es "false", el controlador JDBC de Microsoft SQL Server 2005 validará el certificado SSL del servidor. Si la validación del certificado de servidor da error, el controlador generará un error y terminará la conexión. El valor predeterminado es "false".

Nota

Esta propiedad se usa junto con la propiedad encrypt. Esta propiedad sólo afecta a la validación de certificado SSL de servidor si y sólo si la propiedad encrypt se establece en "true".

trustStore

String

null

La ruta de acceso (incluido el nombre de archivo) del archivo trustStore del certificado. El archivo trustStore contiene la lista de certificados en los que el cliente confía.

Cuando esta propiedad no se especifica o se establece en null, el controlador se basará en las reglas de búsqueda del generador del administrador de confianza para determinar qué almacén de certificados se usará.

El generador TrustManagerFactory SunX509 predeterminado intenta buscar material de confianza en el orden de búsqueda siguiente:

  • Un archivo especificado por la propiedad del sistema "javax.net.ssl.trustStore" de la máquina virtual Java (JVM).

  • El archivo "<java-home>/lib/security/jssecacerts".

  • El archive "<java-home>/lib/security/cacerts".

Para obtener más información, consulte la documentación de la interfaz de SUNX509 TrustManager en el sitio web de Sun Microsystems.

Nota

Esta propiedad sólo afecta a la búsqueda trustStore de certificado, si y sólo si la propiedad encrypt se establece en "true" y la propiedad trustServerCertificate se establece en "false".

trustStorePassword

String

null

Contraseña que se usa para comprobar la integridad de los datos trustStore.

Si se establece la propiedad trustStore pero no se establece la propiedad trustStorePassword, la integridad de trustStore no se comprueba.

Cuando las propiedades trustStore y trustStorePassword no se especifican, el controlador utilizará las propiedades del sistema de JVM, "javax.net.ssl.trustStore" y "javax.net.ssl.trustStorePassword". Si no se especifica la propiedad del sistema "javax.net.ssl.trustStorePassword", no se comprueba la integridad del trustStore.

Si no se establece la propiedad trustStore pero se establece la propiedad trustStorePassword, el controlador JDBC utilizará el archivo especificado por "javax.net.ssl.trustStore" como almacén de confianza y la integridad de éste se comprueba con la trustStorePassword especificada. Esto podría ser necesario cuando la aplicación cliente no desea almacenar la contraseña en la propiedad del sistema de JVM.

Nota

La propiedad trustStorePassword sólo afecta a la búsqueda de trustStore de certificado, si y sólo si la propiedad encrypt se establece en "true" y la propiedad trustServerCertificate se establece en "false".

workstationID

String

[<=128 car.]

<cadena vacía>

El identificador de la estación de trabajo. Se usa para identificar la estación de trabajo concreta en diversas herramientas de creación de perfiles y registros de SQL Server. Si no se especifica ninguno, se utiliza la <cadena vacía>.

xopenStates

boolean

["true"|"false"]

false

Establézcalo en "true" para especificar que el controlador devuelve en las excepciones códigos de estado compatibles con XOPEN. De forma predeterminada se devuelven códigos de estado SQL 99.

Vea también

Otros recursos

Conectar SQL Server con el controlador JDBC