O que é uma connection string JDBC?
Uma connection string JDBC é uma URL que especifica o host do banco de dados, a porta e outros parâmetros necessários para se conectar a um banco de dados SQL Server. Essa string fornece todas as informações que o driver JDBC precisa para estabelecer a conexão.
Estrutura básica de uma connection string JDBC para SQL Server
O formato geral de uma connection string JDBC para SQL Server é este:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]];[property=value[;property=value]]
- jdbc:sqlserver:// - O protocolo usado em uma conexão JDBC.
- serverName - O nome ou endereço IP do servidor que hospeda a instância do SQL Server.
- instanceName (opcional) - A instância específica do SQL Server.
- portNumber (opcional) - A porta de conexão. O padrão é 1433.
- property=value - Propriedades adicionais para configurar a conexão (como nome do banco de dados, dados de autenticação etc.).
Se você trabalha com PostgreSQL, confira nosso PostgreSQL JDBC URL Builder para montar connection strings com facilidade.
Exemplo: connection string JDBC mínima
String connectionUrl = "jdbc:sqlserver://localhost:1433;";
Esta é a forma mais simples de uma connection string, em que:
- O servidor de banco de dados está hospedado localmente.
- A porta é a padrão do SQL Server, 1433.
Exemplo: connection string JDBC completa
Para uma configuração mais detalhada, considere um cenário em que você quer se conectar a uma instância nomeada em um servidor remoto, com credenciais e banco de dados específicos:
String connectionUrl = "jdbc:sqlserver://192.168.1.100\\SQLExpress:1433;"
+ "databaseName=MyDatabase;"
+ "user=myUsername;"
+ "password=myPassword;";
Veja o que cada parte significa:
-
192.168.1.100\\SQLExpress:1433- Conecta à instânciaSQLExpressno servidor192.168.1.100usando a porta1433. -
databaseName=MyDatabase- Conecta ao banco de dados específico chamadoMyDatabase. -
user=myUsernameepassword=myPassword- São as credenciais usadas na autenticação.
Exemplo com Autenticação Integrada do Windows
Se o seu SQL Server estiver configurado para usar a Autenticação do Windows, você pode usar o parâmetro integratedSecurity:
String connectionUrl = "jdbc:sqlserver://localhost:1433;"
+ "databaseName=MyDatabase;"
+ "integratedSecurity=true;";
Isso faz o driver usar as credenciais do Windows do usuário atualmente logado para a autenticação.
Conectando com o driver JDBC
Para usar a connection string em uma aplicação Java, você precisa carregar o driver JDBC do SQL Server e estabelecer uma conexão. Abaixo está um exemplo completo de um programa Java que se conecta ao SQL Server usando JDBC:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLServerConnection {
public static void main(String[] args) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;"
+ "databaseName=MyDatabase;"
+ "user=myUsername;"
+ "password=myPassword;";
try {
// Load the SQL Server JDBC driver
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Establish the connection
Connection con = DriverManager.getConnection(connectionUrl);
// Create and execute a basic SQL query
String SQL = "SELECT * FROM Customers";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
// Iterate through the result set and print the data
while (rs.next()) {
System.out.println(rs.getString("CustomerID") + " - " + rs.getString("CustomerName"));
}
// Close the resources
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Saída esperada:
Supondo que você tenha uma tabela Customers no seu banco de dados, executar o código acima vai exibir os IDs e nomes dos clientes assim:
1 - John Doe
2 - Jane Smith
3 - Alice Johnson
Parâmetros comuns da connection string
| Propriedade | Descrição |
|---|---|
| databaseName | Nome do banco de dados ao qual se conectar. |
| user | Nome de usuário para o login no SQL Server. |
| password | Senha para o login no SQL Server. |
| integratedSecurity | Se true, ativa a autenticação do Windows. |
| encrypt | Se true, força a criptografia da conexão. |
| trustServerCertificate | Se true, confia no certificado do SQL Server sem validação. |
Solução de problemas de conexão
URL de conexão inválida
Se você encontrar um erro como:
com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.
Verifique se a connection string segue o formato correto e se não há ponto e vírgula (;) ou sinais de igual (=) fora do lugar.
Porta não está escutando
Se você receber um erro indicando que a conexão foi recusada, verifique se:
- A instância do SQL Server está em execução.
- A porta especificada está aberta e escutando.
Você pode verificar em qual porta o SQL Server está escutando executando esta query no SQL Server:
SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE local_net_address IS NOT NULL;
Driver não encontrado
Se você vir um erro como:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Verifique se você adicionou o driver JDBC do SQL Server ao classpath do seu projeto. Você pode baixar o driver no site da Microsoft.
Conclusão
Configurar uma conexão JDBC com o SQL Server é simples depois que você entende a estrutura da connection string. Este tutorial cobriu o essencial, incluindo connection strings básicas e avançadas, como integrar a connection string em uma aplicação Java e algumas dicas comuns de solução de problemas.
Beekeeper Studio é um cliente de banco de dados gratuito e open source
A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit
O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários dizem sobre o Beekeeper Studio
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e torna o trabalho com bancos de dados agradável de novo."
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."