Condividi tramite


Impostazione delle proprietà delle connessioni

Le proprietà della stringa di connessione possono essere specificate in diversi modi:

  • Come proprietà nome=valore nell'URL della connessione, quando si crea la connessione utilizzando la classe DriverManager.

  • Come proprietà nome=valore nel parametro Properties del metodo Connect della classe DriverManager.

  • Come valori nel metodo per l'impostazione appropriato dell'origine dei dati del driver. Ad esempio:

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

Per i nomi delle proprietà non viene fatta distinzione tra maiuscole e minuscole e i nomi di proprietà duplicati vengono risolti nell'ordine seguente:

  1. Argomenti API (come utente e password)

  2. Insieme della proprietà

  3. Ultima istanza nella stringa di connessione

Inoltre, sono consentiti valori sconosciuti per i nomi di proprietà, per cui non viene convalidata la corretta combinazione di maiuscole e minuscole.

I sinonimi sono consentiti e vengono risolti in un ordine simile a quello utilizzato per i nomi di proprietà duplicati.

Nella tabella seguente vengono elencate tutte le proprietà della stringa di connessione attualmente disponibili per il driver JDBC:

Proprietà Tipo Impostazione predefinita Descrizione

applicationName

String

[<=128 char]

null

Nome dell'applicazione o "driver JDBC per Microsoft SQL Server 2005", se non viene fornito alcun nome. Utilizzato per identificare l'applicazione specifica nei diversi strumenti di registrazione e profiling di SQL Server.

databaseName, database

String

[<=128 char]

null

Nome del database a cui connettersi. Se non viene specificato, viene creata una connessione al database predefinito.

disableStatementPooling

boolean

["true"|"false"]

true

Attualmente è supportato solo il valore "true". Se la proprietà è impostata su "false", viene generata un'eccezione.

encrypt

boolean

["true"|"false"]

false

Impostare su "true" per specificare che in SQL Server viene utilizzata la crittografia SSL (Secure Sockets Layer) per tutti i dati inviati tra il client e il server se nel server è installato un certificato. Il valore predefinito è false.

failoverPartner

String

null

Il nome del server di failover utilizzato nella configurazione del mirroring del database. Questa proprietà viene utilizzata per un errore di connessione iniziale al server principale. La proprietà verrà ignorata una volta eseguita la connessione iniziale. Questa proprietà deve essere utilizzata insieme alla proprietà databaseName.

hostNameInCertificate

String

null

Nome host da utilizzare per la convalida del certificato SSL di SQL Server.

Se la proprietà hostNameInCertificate non è specificata o è imposta su Null, il driver JDBC per Microsoft SQL Server 2005 utilizza il valore della proprietà serverName nell'URL di connessione come nome host per la convalida del certificato SSL di SQL Server.

Nota

Questa proprietà viene utilizzata in combinazione con le proprietà encrypt e trustServerCertificate. Questa proprietà influisce sulla convalida del certificato se e solo se la proprietà encrypt è impostata su "true" e la proprietà trustServerCertificate è impostata su "false".

instanceName

String

[<=128 char]

null

Nome dell'istanza di SQL Server 2000 o SQL Server 2005 a cui connettersi. Se non viene specificato, viene creata una connessione all'istanza predefinita. Nel caso in cui vengano specificate entrambe le proprietà instanceName e port, vedere le note relative a port.

integratedSecurity

boolean

["true"|"false"]

false

Impostare la proprietà su "true" per indicare che le credenziali di Windows verranno utilizzate da SQL Server per autenticare l'utente dell'applicazione. Se impostata su "true," il driver JDBC cerca nella cache delle credenziali sul computer locale le credenziali che sono già state fornite per l'accesso al computer o alla rete. Se impostata su "false," è necessario fornire il nome utente e la password.

Nota

Questa proprietà di connessione è supportata solo nei sistemi operativi Microsoft Windows.

lastUpdateCount

boolean

["true"|"false"]

true

Con il valore "true" viene restituito solo il conteggio dell'ultimo aggiornamento da un'istruzione SQL passata al server e può essere utilizzato nelle singole istruzioni SELECT, INSERT o DELETE per ignorare ulteriori conteggi di aggiornamento causati dai trigger del server. Impostando questa proprietà su "false" verranno restituiti tutti i conteggi di aggiornamento, inclusi quelli restituiti dai trigger del server.

Nota

Questa proprietà si applica solo quando viene utilizzata con i metodi executeUpdate.

lockTimeout

int

-1

Numero di millisecondi di attesa prima che venga segnalato un timeout di blocco per il database. Il comportamento predefinito prevede un'attesa illimitata. Se specificato, questo valore diventerà l'impostazione predefinita per tutte le istruzioni sulla connessione. Si noti che è possibile utilizzare Statement.setQueryTimeout() per impostare il timeout per istruzioni specifiche. Il valore può essere 0, che indica appunto che l'intervallo di attesa è pari a zero.

loginTimeout

int [0..65535]

0

Numero di secondi di attesa del driver prima del timeout di una connessione non riuscita. Un valore pari a zero indica l'assenza di un valore di timeout. Un valore diverso da zero indica il numero di secondi di attesa del driver prima del timeout di una connessione non riuscita.

packetSize

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

8000

Le dimensioni del pacchetto di rete utilizzato per comunicare con SQL Server, specificate in byte. Un valore -1 indica l'utilizzo delle dimensioni del pacchetto predefinite del server. Un valore 0 indica l'utilizzo del valore massimo, ovvero 32767. Se questa proprietà è impostata su un valore che non rientra nell'intervallo valido, viene generata un'eccezione.

Importante

Non è consigliabile utilizzare la proprietà packetSize quando la crittografia è attivata (encrypt=true), altrimenti il driver potrebbe generare un errore di connessione. Per ulteriori informazioni, vedere il metodo setPacketSize della classe SQLServerDataSource.

password

String

[<=128 char]

null

Password del database.

portNumber, port

int [0..65535]

1433

Porta di attesa di SQL Server. Se nella stringa di connessione viene specificato il numero di porta, non viene creata alcuna richiesta a sqlbrowser. Se vengono specificate entrambe le proprietà port e instanceName, viene creata la connessione alla porta specificata. Tuttavia, la proprietà instanceName viene convalidata e, se non corrisponde alla proprietà port, viene generato un errore.

Importante

È consigliabile specificare sempre il numero di porta, poiché tale procedura è più sicura dell'utilizzo di sqlbrowser.

responseBuffering

String

["full"|"adaptive"]

full

Se questa proprietà è impostata su "full", l'intero set di risultati viene letto dal server quando viene eseguita un'istruzione. La modalità predefinita è "full" per il driver JDBC per Microsoft SQL Server 2005 versione 1.2 e offre compatibilità con le versioni precedenti del driver JDBC per Microsoft SQL Server 2005, ovvero le versioni 1.0 e 1.1. Quando questa proprietà è impostata su "adaptive", nel buffer viene memorizzata, quando necessario, la quantità minima di dati possibile. Per il driver JDBC per Microsoft SQL Server 2005 versione 1.2 la modalità consigliata è "adaptive".

selectMethod

String

["direct"|"cursor"]

direct

Se questa proprietà è impostata su "cursor", viene creato un cursore di database per ogni query creata sulla connessione per i cursori TYPE_FORWARD_ONLY e CONCUR_READ_ONLY. Questa proprietà è in genere necessaria solo se l'applicazione genera set di risultati molto grandi, che non possono essere completamente contenuti nella memoria client. Se la proprietà è impostata su "cursor", nella memoria client verrà mantenuto solo un numero limitato di righe del set di risultati. Il comportamento predefinito prevede che nella memoria client siano mantenute tutte le righe del set di risultati. Questo comportamento garantisce le prestazioni più veloci quando l'applicazione sta elaborando tutte le righe.

sendStringParametersAsUnicode

boolean

["true"|"false"]

true

Impostare la proprietà su "false" per specificare che i parametri preparati per i dati di tipo carattere verranno inviati in formato ASCII anziché Unicode. Questo parametro può migliorare le prestazioni per la ricerca degli indici dei dati di tipo carattere su tabelle di SQL Server 2000 o SQL Server 2005 non Unicode. Le chiavi delle righe ASCII possono, ad esempio, essere confrontate direttamente, senza l'overhead della conversione da Unicode. Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base all'indirizzo support.microsoft.com/kb/271566.

serverName, server

String

null

Computer che esegue SQL Server.

userName, user

String

[<=128 char]

null

Utente del database.

trustServerCertificate

boolean

["true"|"false"]

false

Impostare su "true" per specificare che il certificato SSL di SQL Server non viene convalidato dal driver JDBC per Microsoft SQL Server 2005.

Se il valore è "true", il certificato SSL di SQL Server viene automaticamente considerato attendibile quando il livello di comunicazione è crittografato utilizzando SSL.

Se il valore è "false", il certificato SSL del server viene convalidato dal driver JDBC per Microsoft SQL Server 2005. Se il la convalida del certificato del server ha esito negativo, tramite il driver viene generato un errore e la connessione viene terminata. Il valore predefinito è "false".

Nota

Questa proprietà viene utilizzata in combinazione con la proprietà encrypt. Questa proprietà influisce solo sulla convalida del certificato SSL del server, se e solo se la proprietà encrypt è impostata su "true".

trustStore

String

null

Percorso (incluso il nome file) del file trustStore del certificato. Il file trustStore contiene l'elenco di certificati considerati attendibili dal client.

Quando la proprietà non è specificata o è impostata su Null, per determinare l'archivio certificati da utilizzare vengono utilizzate le regole di ricerca della factory del gestore di attendibilità.

Tramite l'istanza predefinita di TrustManagerFactory SunX509 viene eseguito un tentativo di individuare il materiale attendibile in base all'ordine di ricerca seguente:

  • Un file specificato dalla proprietà di sistema JVM (Java Virtual Machine) "javax.net.ssl.trustStore".

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

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

Per ulteriori informazioni, vedere la documentazione relativa all'interfaccia TrustManager SUNX509 nel sito Web Sun Microsystems.

Nota

Questa proprietà influisce solo sulla ricerca del file trustStore del certificato, se e solo se la proprietà encrypt è impostata su "true" e la proprietà trustServerCertificate è impostata su "false".

trustStorePassword

String

null

Password utilizzata per verificare l'integrità dei dati del file trustStore.

Se la proprietà trustStore è impostata ma la proprietà trustStorePassword non è impostata, l'integrità del file trustStore non viene verificata.

Quando entrambe le proprietà trustStore e trustStorePassword non sono specificate, il driver utilizza le proprietà di sistema JVM "javax.net.ssl.trustStore" e "javax.net.ssl.trustStorePassword". Se la proprietà di sistema "javax.net.ssl.trustStorePassword" non è specificata, l'integrità del file trustStore non viene verificata.

Se la proprietà trustStore non è impostata ma la proprietà trustStorePassword è impostata, il driver JDBC utilizza il file specificato da "javax.net.ssl.trustStore" come archivio di attendibilità e l'integrità dell'archivio di attendibilità viene verificata utilizzando la proprietà trustStorePassword specificata. Questo può essere necessario quando non si desidera che per l'applicazione client la password venga archiviata nella proprietà di sistema JVM.

Nota

La proprietà trustStorePassword influisce solo sulla ricerca del file trustStore del certificato, se e solo se la proprietà encrypt è impostata su "true" e la proprietà trustServerCertificate è impostata su "false".

workstationID

String

[<=128 char]

<stringa vuota>

ID della workstation. Questa proprietà viene utilizzata per identificare una workstation specifica in diversi strumenti di registrazione e profiling di SQL Server. Se non viene specificato un valore, viene utilizzata la <stringa vuota>.

xopenStates

boolean

["true"|"false"]

false

Impostare la proprietà su "true" per specificare che il driver restituisce codici di stato compatibili con XOPEN nelle eccezioni. L'impostazione predefinita prevede la restituzione di codici di stato SQL 99.

Vedere anche

Altre risorse

Connessione a SQL Server con il driver JDBC