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:

worksapce

worksapce

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

package explorer

package explorer

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

package explorer

package explorer

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) throws Exception {
		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:porta:nome do serviço", "usuário", "senha");
		} 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 :).

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s