Esta seção descreve como carregar e inicializar o driver JDBC nos programas.
Todo fonte que utiliza o JDBC precisa importar o pacote java.sql, utilizando:
import java.sql.*;
Nota: Não deve ser importado o pacote org.postgresql. Se isto for feito o fonte não vai compilar, porque o javac vai se confundir.
Antes de ser possível fazer a conexão com o banco de dados é necessário carregar o driver. Estão disponíveis dois métodos, e depende do código qual é o melhor para ser utilizado.
No primeiro método, o código carrega implicitamente o driver utilizando o método Class.forName()
. Para o PostgreSQL é utilizado:
Class.forName("org.postgresql.Driver");
Este método carrega o driver e, enquanto carrega, o driver automaticamente se registra no gerenciador de driver JDBC.
Nota: O método
forName()
pode lançar a exceçãoClassNotFoundException
se o driver não estiver disponível.
Este é o método usado mais comumente, mas restringe o código a usar apenas o PostgreSQL. Se houver possibilidade do código acessar outro sistema de banco de dados no futuro, e não se deseja utilizar nenhuma extensão específica do PostgreSQL, então o segundo método é mais aconselhável.
O segundo método passa o driver como um parâmetro para a JVM quando esta é inicializada, utilizando o argumento -D. Por exemplo:
java -Djdbc.drivers=org.postgresql.Driver exemplo.VerImagem
Neste exemplo a JVM tenta carregar o driver como parte de sua inicialização. Uma vez isto feito, VerImagem
é iniciado.
Este método é o melhor, porque permite o código ser utilizado com outros gerenciadores de banco de dados sem a necessidade de ser recompilado. A única coisa que também mudaria é a URL da conexão, é coberta a seguir.
Para terminar: Quando o código utiliza a classe Connection
para abrir uma conexão, e é lançada uma exceção SQLException
com a mensagem Nenhum driver disponível, provavelmente isto foi causado pelo fato do driver não estar no caminho de classe, ou o valor do parâmetro não estar correto.
No JDBC, o banco de dados é representado por uma URL (Uniform Resource Locator). No PostgreSQL, a URL possui uma das seguintes formas:
jdbc:postgresql:banco_de_dados
jdbc:postgresql://hospedeiro/banco_de_dados
jdbc:postgresql://hospedeiro:porta/banco_de_dados
Os parâmetros possuem o seguinte significado:
jdbc:postgresql://[::1]:5740/contabilidade
Para se conectar é necessário obter uma instância Connection
do JDBC. Para isto é utilizado DriverManager.getConnection()
:
Connection db = DriverManager.getConnection(url, nome_do_usuário, senha);
Para fechar a conexão com o banco de dados simplesmente deve ser chamado o método close()
da classe Connection
:
db.close();