Problemas com Java - Oracle XE

13 respostas Resolvido
oracle11javasql
B

Oi pessoal! Eu estava estudando Banco de Dados no meu curso Java e estou travado porque meu código não compila. Eu segui exatamente os mesmos passos do instrutor mas não funciona:

package myjava.exemplos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class AulaXTI110_BancoDeDados {

	public static void main(String[] args) throws SQLException {
		
		String url = "jdbc:oracle:thin:@127.0.0.1:3301:xe";
		String sql = "SELECT CODIGO, NOME, SEXO, EMAIL FROM PESSOA";
		
		try(Connection con = DriverManager.getConnection(url, "nando", "abc123");
		PreparedStatement stm = con.prepareStatement(sql);
		ResultSet rs = stm.executeQuery()){
			while(rs.next()) {
				System.out.println(rs.getString("NOME"));
			}
		}
		

	}

}

Eu criei a tabela, como pode ser visto nesse printscreen:

[img]http://i.imgur.com/PZOrEfk.png[/img]

Os erros informados são esses (uso o Eclipse):

java.sql.SQLException: Erro de ES: The Network Adapter could not establish the connection
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at myjava.exemplos.AulaXTI110_BancoDeDados.ObterConexao(AulaXTI110_BancoDeDados.java:33)
	at myjava.exemplos.AulaXTI110_BancoDeDados.main(AulaXTI110_BancoDeDados.java:9)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
	at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:375)
	at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
	at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:678)
	at oracle.net.ns.NSProtocol.connect(NSProtocol.java:238)
	at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
	... 8 more
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:201)
	at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
	at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353)
	... 13 more
Exception in thread "main" java.lang.NullPointerException
	at myjava.exemplos.AulaXTI110_BancoDeDados.main(AulaXTI110_BancoDeDados.java:11)

Alguém me ajuda? Vou ser grato pelo resto da eternidade!

_PS: moderador, por favor não coloque um "?" no final do meu título porque "Problemas com Java - Oracle XE" é uma afirmação e não uma interrogação._

13 Respostas

L

Esta mensagem é apresentada quando existe erro na comunicação com o banco. O banco pode estar parado, a porta está errada, a url pode estar errada, etc.
Percebe que a tua String sql tem como porta o valor 3301, certo? Você alterou da padrão para 3301? Senão, a porta correta seria 1521

String url = "jdbc:oracle:thin:@127.0.0.1:3301:xe";

Deveria ser

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

B

Alterei e continuou dando erros:

Exception in thread "main" java.sql.SQLException: Erro de ES: The Network Adapter could not establish the connection at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at myjava.exemplos.AulaXTI110_BancoDeDados.main(AulaXTI110_BancoDeDados.java:15) Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:375) at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:678) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:238) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308) ... 7 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:201) at oracle.net.nt.ConnOption.connect(ConnOption.java:123) at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353) ... 12 more

:confounded:

L

Bom, agora a outra opção é certificar-se de que o banco está rodando e analisar os arquivos tnsnames.ora e listener.ora e verificar se eles estão mapeando a url 127.0.0.1 ou localhost.
Se não quiser ir até os arquivos, altera de 127.0.0.1 para localhost e testa,

B

Eu mudei para localhost também e nada :frowning:

L

Tem mesmo certeza de que o banco roda?
Tem mesmo certeza que a configuração está correta?
Consegue conectar-se ao banco utilizando o SQL Developer?

B

Na verdade eu não tenho certeza de nada, porque é a primeira aula de banco de dados e jdbc que eu estava vendo, eu só segui os passos, e no caso do professor deu certo e no meu deu tudo errado. ;-;

L

Bom, então o que te resta fazer é conversar com teu professor e pedir que ele verifique onde você errou e depois te ajude a corrigir.
Assim não temos nem como saber se você instalou o banco e se configurou o mesmo de forma adequada.

B

Então não há problemas no código que fiz no Eclipse? Sendo assim eu darei uma introdução rápida em SQL para aprender sobre como instalar e configurar corretamente o banco, acho que será mais apropriado.

L

Tirando o que descrevi anteriormente, a respeito da porta, não há qualquer outro problema aparente.

B

Certo, obrigado por tudo. Que Bill Gates e Zuckerberg te abençoem em nome de Alan Turing.

L

Isso é bênção ou maldição?
Prefiro a bênção da Ada Lovelace…

B
Solucao aceita

Encontrei a solução! O problema não estava na instalação do banco nem nas configurações, mas em sei lá. Enfim, para quem tiver a mesma dúvida (e pelo que pesquisei na net, é um montão de gente xD):

  1. Eu abri um arquivo de bloco de notas em modo administrador;
  2. Procurei pelo arquivo hosts em System32/drivers/etc/
  3. Na linha em que aparece o localhost eu retirei o “#”.

Luis, então eu desejo que as bênçãos que lhe desejei em nome desses homens sejam o dinheiro deles :v

L

Nem em um bilhão de dólares do Bill Gates que eu ia sonhar com isso…
Enfim, boa!

Criado 24 de março de 2017
Ultima resposta 24 de mar. de 2017
Respostas 13
Participantes 2