Capítulo 31. A interface JDBC

Sumário
31.1. Definição do driver JDBC
31.1.1. Obtenção do driver
31.1.2. Definição do caminho de classe
31.1.3. Preparação do servidor de banco de dados para o JDBC
31.2. Inicialização do driver
31.2.1. Importação do JDBC
31.2.2. Carga do driver
31.2.3. Conexão com o banco de dados
31.2.4. Fechamento da conexão
31.3. Realização de consultas e processamento dos resultados
31.3.1. Busca dos resultados com base em um cursor
31.3.2. Utilização da interface Statement ou PreparedStatement
31.3.3. Utilização da interface ResultSet
31.4. Realização de atualizações
31.5. Chamadas de procedimentos armazenados
31.5.1. Utilização da interface CallableStatement
31.5.2. Obtenção de um ResultSet a partir de uma função armazenada
31.6. Criação e modificação de objetos do banco de dados
31.7. Armazenamento de dados binários
31.8. Extensões do PostgreSQL à API JDBC
31.8.1. Acesso às extensões
31.8.2. Tipos de dado geométricos
31.8.3. Objetos Grandes
31.9. Utilização do driver em um ambiente Multithread ou Servlet
31.10. Pools de conexão e fontes de dado
31.10.1. Visão geral
31.10.2. Servidores de aplicação: ConnectionPoolDataSource
31.10.3. Aplicações: DataSource
31.10.4. Fontes de dados e JNDI
31.11. Exemplo de utilização básica do JDBC
31.12. Exemplo de utilização de BLOB no JDBC
31.13. Exemplo de utilização de Thread no JDBC
31.14. Leitura adicional

O JDBC é uma API núcleo do Java 1.1 e posteriores. Fornece um conjunto padrão de interfaces para bancos de dados em conformidade com o SQL.

O PostgreSQL fornece um driver JDBC tipo 4. O tipo 4 indica que o driver é escrito inteiramente em Java, e se comunica utilizando o protocolo de rede nativo do sistema de banco de dados. Por causa disto, o driver é independente da plataforma; uma vez compilado, o driver pode ser utilizado em qualquer sistema.

Este capítulo não tem por objetivo ser um guia completo de programação JDBC, mas deve ajudar a começar. Para obter mais informações veja a documentação da API JDBC. Também devem ser vistos os exemplos incluídos com o fonte.

31.1. Definição do driver JDBC

Esta seção descreve os passos a serem realizados antes de se poder escrever ou executar programas que utilizam a interface JDBC.

31.1.1. Obtenção do driver

As versões pré-compiladas do driver podem ser baixadas da página PostgreSQL JDBC Drivers [1] .

Como alternativa, o driver pode ser construído a partir do código fonte, mas isso somente deve ser feito quando são feitas alterações no código fonte. Para obter detalhes, consulte as instruções de instalação do PostgreSQL. Após a instalação o driver deverá estar em PREFIX/share/java/postgresql.jar. O driver produzido será construído para a versão do Java sendo executada. Se for construído com o JDK 1.1 será produzida uma versão que suporta a especificação JDBC 1, se for construído com o JDK 1.2 ou 1.3 será produzida uma versão que suporta a especificação JDBC 2 e, finalmente, se for construído com o JDK 1.4 será produzida uma versão que suporta a especificação JDBC 3.

31.1.2. Definição do caminho de classe

Para o driver poder ser utilizado, o arquivo JAR (chamado postgresql.jar se for construído a partir do fonte ou então chamado, provavelmente, pg7.4jdbc1.jar, pg7.4jdbc2.jar ou pg7.4jdbc3.jar para as versões JDBC 1, JDBC 2 e JDBC 3, respectivamente) precisa ser incluído no caminho de classe, seja colocando-o na variável de ambiente CLASSPATH, ou utilizando sinalizadores na linha de comando do java.

Por exemplo, assumindo haver uma aplicação que utiliza o driver JDBC para acessar o banco de dados, que esta aplicação esteja instalada como /usr/local/lib/myapp.jar, e que o driver JDBC do PostgreSQL esteja instalado como /usr/local/pgsql/share/java/postgresql.jar, para executar esta aplicação deve ser utilizado [2] :

export CLASSPATH=/usr/local/lib/myapp.jar:/usr/local/pgsql/share/java/postgresql.jar:.
java MyApp

A carga do driver dentro da aplicação está descrita na Seção 31.2 .

31.1.3. Preparação do servidor de banco de dados para o JDBC

Uma vez que o Java utiliza somente conexões TCP/IP, o servidor PostgreSQL deve estar configurado para aceitar conexões TCP/IP. Isto pode ser feito definindo tcpip_socket = true no arquivo postgresql.conf ou através da opção -i ao inicializar o postmaster.

Também precisa ser configurada a definição da autenticação do cliente no arquivo pg_hba.conf . Consulte o Capítulo 19 para obter detalhes. O driver JDBC suporta os métodos de autenticação trust, ident, senha, md5 e crypt.

Notas

[1]

No Fedora Core 2 o driver JDBC pode ser instalado a partir do arquivo postgresql-jdbc-7.4.2-1.i386.rpm (N. do T.)

[2]

No Fedora Core 2 o caminho de classe para acessar o driver JDBC instalado a partir do RPM é "export CLASSPATH=/usr/share/java/pg74.1jdbc3.jar:." quando se utiliza o JDK 1.4 (N. do T.)

SourceForge.net Logo