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:
[code] 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"));
}
}
}
}
[/code]
Eu criei a tabela, como pode ser visto nesse printscreen:
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.
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";
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
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,
Eu mudei para localhost também e nada
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?
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. ;-;
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.
1 curtida
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.
Tirando o que descrevi anteriormente, a respeito da porta, não há qualquer outro problema aparente.
1 curtida
Certo, obrigado por tudo. Que Bill Gates e Zuckerberg te abençoem em nome de Alan Turing.
Isso é bênção ou maldição?
Prefiro a bênção da Ada Lovelace…
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):
- Eu abri um arquivo de bloco de notas em modo administrador;
- Procurei pelo arquivo hosts em System32/drivers/etc/
- 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
Nem em um bilhão de dólares do Bill Gates que eu ia sonhar com isso…
Enfim, boa!