Desenvolvimento - Java

Conexão com Oracle no Java dentro do Eclipse

Veja neste artigo, como se conectar no banco de dados Oracle e efetuar uma consulta simples.

por Oscar Casagrande



Conexão com Oracle no Java dentro do Eclipse

Retomei meus estudos com Java, e acredito que algo bem simples como se conectar no banco de dados e efetuar uma consulta simples é o mínimo que eu poderia fazer, com a ajuda de um mestre em Java fiz essa pequena classe.


A primeira coisa que fiz foi definir um  novo workspace no Eclipse, denominado CRUD como na figura abaixo:

Criei um novo Java Project com o nome CRUD, até aqui a estrutura está assim no Package Explorer


Adicionei um package denominado br.com.crud.acessoDados e adicionei uma classe chamada Principal.java. A estrutura já está assim


A classe está da seguinte forma:

package br.com.crud.acessoDados;

public class Principal {

}

Agora vou criar o método main da maneira mais simples possível. E dentro dele crio um objeto do tipo Connection da biblioteca java.sql com o nome conexao que terá como valor o resultado do método ObterConexao().

public class Principal {

         public static void main(String[] args) {

                   Connection conexao = ObterConexao();

         }

}

Agora adicionei o import da biblioteca java.sql, a classe está assim

import java.sql.*;

public class Principal {

         public static void main(String[] args) {

                   Connection conexao = ObterConexao();

         }

}

Agora vamos criar o método ObterConexao, ele retornará um objeto do tipo Connection da biblioteca java.sql. Vamos manter o baixo acoplamento com o driver do Oracle nesse método, ao invés de utilizar import do jdbc, vamos passar o driver por uma das sobrecargas que o método getConnection da classe DriverManager tem.

Class.forName("oracle.jdbc.driver.OracleDriver");

                            conexao = DriverManager.getConnection(

                                               "jdbc:oracle:thin:@host:porta:nome do serviço", "usuário", "senha");

Vanos adicionar agora dois catch para para esse código, um que verificará se a classe de conexão existe e outro que verificará algum erro de SQL.

                        catch (ClassNotFoundException e) {

                            e.printStackTrace();

                   } catch (SQLException e) {

                            e.printStackTrace();

                   }

Nosso método ficará assim

         private static Connection ObterConexao() {

                   Connection conexao = null;

                   try {

                            Class.forName("oracle.jdbc.driver.OracleDriver");

                            conexao = DriverManager.getConnection(

                                               "jdbc:oracle:thin:@host:porta:nome do serviço", "usuário", "senha");

                   } catch (ClassNotFoundException e) {

                            e.printStackTrace();

                   } catch (SQLException e) {

                            e.printStackTrace();

                   }

                   return conexao;

         }

Agora vamos testar nossa conexão e fazer uma query muito simples no Oracle, vamos selecionar a data e hora do banco que será essa:

select sysdate from dual

Para executar essa query temos que utilizar um objeto do tipo Statement, também da biblioteca java.sql, e além dele, vamos utilizar um objeto do tipo ResultSet que representará os dados trazidos pelo Statement. O método main ficará assim no final de tudo:

         public static void main(String[] args) throws Exception {

                   Connection conexao = ObterConexao();

                   Statement statement = conexao.createStatement();

                   String query = "SELECT sysdate FROM dual";

                   ResultSet resultSet = statement.executeQuery(query);

                   if (resultSet.next()) {

                            System.out.println(resultSet.getDate("sysdate"));

                   }

         }

Esse é o código completo:

package br.com.crud.acessoDados;

import java.sql.*;

public class Principal {

         public static void main(String[] args) throws Exception {

                   Connection conexao = ObterConexao();

                   Statement statement = conexao.createStatement();

                   String query = "SELECT sysdate FROM dual";

                   ResultSet resultSet = statement.executeQuery(query);

                   if (resultSet.next()) {

                            System.out.println(resultSet.getDate("sysdate"));

                   }

         }

         private static Connection ObterConexao() {

                   Connection conexao = null;

                   try {

                            Class.forName("oracle.jdbc.driver.OracleDriver");

                            conexao = DriverManager.getConnection(

                                               "jdbc:oracle:thin:@host:pota:nome do serviço", "usuário", "usuário");

                   } catch (ClassNotFoundException e) {

                            e.printStackTrace();

                   } catch (SQLException e) {

                            e.printStackTrace();

                   }

                   return conexao;

         }

}

Com isso evoluí mais um pouco e espero que ajude a comunidade a evoluir também :).

linha
Oscar Casagrande

Oscar Casagrande - Técnico em Processamento de Dados pelo Colégio Técnico Elevação, tecnólogo em Desenvolvimento de Sistemas para Web no Instituto Brasileiro de Tecnologia Avançado (IBTA, agora Instituto Veris) e fazendo pós-graduação em Engenharia de Sistemas com ênfase em SOA no Instituto Veris.
Blog:
http://oscarcasagrande.blogspot.com.