Consultas para um BD com JDBC

na maioria dos aplicativos que vamos encontrar, um banco de dados aparecerá como uma fonte de informação.jdbc nos permitirá acessar bancos de dados (BD) de Java. ConjDBC Não é necessário escrever diferentes programas para Diferentes BD, mas um único programa serve para acessar o BD de distintas. Mesmo, podemos acessar mais de um BD de distinções (Oracle, Access, MySQL, etc.) no mesmo aplicativo. Podemos pensar em JDBC como a ponte entre um banco de dados e nosso programa Java. Um exemplo simples pode ser um applet que amostrou informações contidas em um banco de dados. O applet usará o JDBC para obter esses dados.

O esquema a ser seguido em um programa que usa o JDBC é o seguinte: Esquema de conexão geral com um banco de dados

Um programa Java que usa o JDBC, você deve primeiro estabelecer uma conexão com o SGBD. Para fazer essa conexão, usaremos um driver específico para cada SGBD à medida que estabelecemos. Uma vez que a conexão tenha sido estabelecida e não podemos notificando o BD com qualquer comando SQL (selecione, atualize, crie, etc.). O resultado de um comando SELECT é um objeto Laclase ResultSet, que contém os dados que retornam a consulta. Nós temos métodos em prótese para lidar com as senhoras devolvidas. Nós também podemos executar qualquer meio no SQL (criação de tabelas, gerenciamento de deusear, etc.). conexão através da API e um driver JDBC

para executar estes Operações Precisamos ter um sistema SGBD (Database Manager), bem como uma unidade de distribuição específica para acessar este SGBD. Vamos usar o SGBD: MySQL (disponível para Windows e Linux, Librredistribution) e Postgres (apenas para Linux, distribuição gratuita).

drivers de acesso

drivers para poder acessar Cada SGBD não faz parte da ladistribuição de Java, para que devemos obtê-los por força. Por que fazer uso de um motorista? Problema elprincipal que pode ser considerado é que cada SGBD tem sua própria API (a maioria da maioria dos proprietários), então um aumento do SGBD implica uma modificação do nosso código. SICOLOCÓMOS Uma camada intermediária, podemos abstrair a conectividade, a partir de tal forma que usamos um objeto para a conexão, e o Eldriver é responsável por traduzir a chamada para a API. O motorista irá simpatizar as próprias empresas que fabricam o SGBD.

Tipos de drivers

Há um padrão estabelecido que divide os drivers de quatro mãos:

  • Ponte do tipo 1: jdbc-odbc. O ODBC (Abrir Conectividade do Banco de Dados) foi criado para fornecer uma conexão com bancos de dados no Microsoft Windows. ODBC permite o acesso a bancos de dados de diferentes linguagens de programação, como C e COBOL. A ponte JDBC-ODBC permite que você vincule o Java com qualquer banco de dados disponível em ODBC. O uso deste tipo de driver não é aconselhável quando temos que acessar bancos de dados de alto desempenho, uma vez que as funcionalidades são limitadas àquelas que a marca ODBC. Cada cliente deve ter o driver instalado. O J2SE inclui este driver em sua versão do Windows e Solaris. Configurando um driver de tipo 1
  • tipo 2: parte java, motorista de peça nativo. É uma combinação de implementação Java e API nativa para acesso ao banco de dados. Este tipo de driver é mais rápido que o anterior, porque a etapa não é realizada pela camada ODBC. As chamadas JDBC são traduzidas em chamadas específicas da API de banco de dados. Cada cliente deve ter o driver instalado. Tem menos desempenho do que os seguintes dois e não pode ser usado na Internet, já que você precisa da API localmente. Configurando um driver do tipo 2 Tipo 2
  • Tipo 3: acesso intermediário de acesso do banco de dados. Este tipo de driverproção é uma abstração da conexão. O cliente Senescute para o SGBD por um componente de servidor intermediário, que atua como um não-porteiro para vários servidores. A vantagem deste tipo dedriver é o nível de abstração. O servidor de aplicativos WebLogic incorpora este tipo de driver. Configurando um driver do tipo 3
  • Drivers do tipo 4: Java. Este é o mais direto. O Llallamada JDBC é traduzido em uma chamada de rede para o banco de dados, sinintermediaries. Fornecer igual desempenho. A maioria dos sgbd fornece drivers de tipo molhado.

Instalação de drivers

A distribuição do JDBC incorpora o Drivers para a ponte JDBC-ODBC que nos permite acessar qualquer BD que seja gerenciado com ODBC. Para o MySQL, precisamos baixar e instalar o SGBD e o driver, que podem ser obtidos no endereço http://dev.mysql.com/doc/mysql/en/Java_Connector.html.O driver postgre é obtido em http://jdbc.postgresql.org

Para instalar o driver, a única coisa que devemos fazer para cancelar o arquivo JAR que o contém no classpath. Por exemplo, para o MySQL:

export CLASSPATH=$CLASSPATH: /directorio-donde-este/mysql-connector-java-3.0.15-ga-bin.jar

com o driver instalado, podemos carregá-lo de nossa aplicação simplesmente carregando dinamicamente a classe para o driver:

Class.forName("com.mysql.jdbc.Driver");

O driver JDBC-ODBC é carregado como mostrado abaixo:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

e similarmente para o postgres :

Class.forName("org.postgresql.Driver");

A carga do driver deve sempre ser feita antes de deconizar com o BD.

Como vimos anteriormente, pode haver diferentes tipos de desvio para o mesmo banco de dados. Por exemplo, um BD no Mysqlpow para acessar por ODBC ou através de seu próprio driver. Poderíamos pensar que a solução mais simples para usar o ODBC para todas as conexões para SGBD. No entanto, dependendo da complexidade do aplicativo ADSARROL, isso poderia nos dar problemas. Determinadas operações de SGBDPermite (transações, melhoria de desempenho, capacidade de funcionamento, etc.) que são reduzidas, tornando sua conexão através do driver ODBC. É por isso que é preferível usar dedrover específico para o SGBD em questão.

O exemplo mais leve de problemas no uso de drivers é com os applets. Quando usamos o acesso a bancos de dados VIAJDBC de um applet, devemos ter em mente que o appletse é executado na máquina do cliente, por isso, se o BD estiver hospedado em nosso servidor, terá que estabelecer uma conexão remota. Aqui encontramos o problema de Quesi O applet é visível da Internet, é muito possível que o Elpurto em que você ouça o servidor de banco de dados pode ser cortado por algum firewall, portanto, o acesso do exterior não seria possível.

O uso da ponte JDBC-ODBC também não é recomendado em applets, pois requer que cada cliente tenha a fonte de dados apropriada configurada em sua máquina. Isso pode controlá-lo no casio uma intranet, mas no caso da Internet será melhor usar outros métodos para a conexão.

Relacionando as exceções, devemos capturar a exceção SQLExceptionNeen quase todas as operações Em que é visto envolvido, objeto JDBC.

Conectando-se ao BD

Uma vez que o driver apropriado seja carregado para o nosso SGBD, devemos estabelecer a conexão com o BD. Para isto usaremos o próximo método:

Connection con = DriverManager.getConnection(url);Connection con = DriverManager.getConnection(url, login, password);

A conexão com o BD é encapsulado em um objeto de conexão. Por sua criação, devemos fornecer o URL BDY, Se o BD for protegido por senha, a senha loginal para acessá-lo. O formato do URLvarary de acordo com o driver que usamos. No entanto, todos os URLs terão a seguinte maneira geral: JDBC: < Subprotrocolo >: < Nome >, com subprotro indicando o tipo de SGBD e com nome nomeado do BD e fornecendo informações adicionais para a conexão.

Para se conectar a uma fonte ODBC de nome BD, por exemplo, usaremos o seguinte URL:

no caso de MySQL, se quisermos se conectar a um BD chamado Bdalo na máquina local (localhost) e com o usuário migorial senha M ++ 24, veremos a seguinte maneira:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bd", "miguel", "m++24");

No caso do Postgres (note que indicamos uma porta de desconexão, o 5432):

Connection con = DriverManager.getConnection( "jdbc:postgresql://localhost:5432/bd", "miguel", "m++24");

podemos depurar a conexão e determinar O que chamou JDBC. Para isso, faremos uso de um par Demétodos que incorpora drivermanager. A seguir, indica-se que as operações que executam a JDBC SEROSERA serão indicadas pela saída padrão:

DriverManager.setLogWriter(new PrintWriter(System.out, true));

Quando esta chamada também pode ser exibida usando :

DriverManager.println("Esto es un mensaje");

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *