Esse é só para quem é fera! (Desconsiderem o anterior)

5 respostas
M

O pepino é o seguinte:

Criei um programa com o Netbeans para acessar uma base Oracle, tipo um “Olá Mundo” só para testar a conexão, o código esta abaixo:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testedb2;

import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;

/**
 *
 * @author malfatti
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String Query = "Select sysdate from dual";
        OracleDataSource ODS = null;
        Connection conexao = null;
        Statement stmt = null;
        ResultSet rset = null;

        System.out.println("Programa Iniciado!");
        try {
            ODS = new OracleDataSource();
        } catch (SQLException ex) {
            System.out.println("Problema Carregando Driver Oracle!");
        }
        try {
            ODS.setDatabaseName("orcl");
            ODS.setDriverType("thin");
            ODS.setServiceName("orcl");
            ODS.setServerName("server1");
            ODS.setPortNumber(1521);
            ODS.setUser("scott");
            ODS.setPassword("tiger");
            conexao = ODS.getConnection();
        } catch (SQLException ex) {
            System.out.println("Problema Conectando com o Oracle:  " + ex.getMessage());
            System.exit(0);
        } finally {
            System.out.println("Conectado com o Oracle!");
        }
        try {
            stmt = conexao.createStatement();
        } catch (SQLException ex) {
            System.out.println("Problema Criando Statement Oracle!");
            System.exit(0);
        }
        System.out.println("Executando Query!");
        try {
            rset = stmt.executeQuery(Query);
        } catch (SQLException ex) {
            System.out.println("Problema Executando Query!");
            System.exit(0);
        }
        System.out.println("Query Executada!");
        try {
            while (rset.next()) {
                System.out.println(rset.getString(1));
                QtdLinhas++;
            }
        } catch (SQLException ex) {
            System.out.println("Problema Fetching valores da Query: " + ex.getMessage());
            System.exit(0);
        }
        try {
            conexao.close();
            ODS.close();
        } catch (SQLException ex) {
            System.out.println("Problema Fechando Conexão!");
            System.exit(0);
        }
        System.out.println("Programa Concluido!");
    }
}

Então eu criei outro programa, usando o Swing e objetos gráficos. O código está abaixo:

/*
 * TesteDB3View.java
 */

package testedb3;

import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;
import org.jdesktop.application.Action;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;

/**
 * The application's main frame.
 */
public class TesteDB3View extends FrameView {

    public TesteDB3View(SingleFrameApplication app) {
        super(app);

        initComponents();

    }

    @Action

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        mainPanel.setName("mainPanel"); // NOI18N

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        jScrollPane1.setViewportView(Texto);

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(testedb3.TesteDB3App.class).getContext().getResourceMap(TesteDB3View.class);
        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(testedb3.TesteDB3App.class).getContext().getActionMap(TesteDB3View.class, this);
        jButton2.setAction(actionMap.get("quit")); // NOI18N
        jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
        jButton2.setToolTipText(resourceMap.getString("jButton2.toolTipText")); // NOI18N
        jButton2.setName("jButton2"); // NOI18N

        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                    .addGroup(mainPanelLayout.createSequentialGroup()
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 254, Short.MAX_VALUE)
                        .addComponent(jButton2)))
                .addContainerGap())
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 249, Short.MAX_VALUE)
                .addContainerGap())
        );

        setComponent(mainPanel);
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String Query = "Select sysdate from dual";
        OracleDataSource ODS = null;
        Connection conexao = null;
        Statement stmt = null;
        ResultSet rset = null;

        JOptionPane.showMessageDialog(null, "Programa Iniciado!", "Programa Iniciado!", JOptionPane.INFORMATION_MESSAGE);
        try {
            ODS = new OracleDataSource();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Carregando Driver Oracle!", "Erro!", JOptionPane.ERROR_MESSAGE);
        }
        try {
            ODS.setDatabaseName("orcl");
            ODS.setDriverType("thin");
            ODS.setServiceName("orcl");
            ODS.setServerName("server1");
            ODS.setPortNumber(1521);
            ODS.setUser("scott");
            ODS.setPassword("tiger");
            conexao = ODS.getConnection();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Conectando com o Oracle:  " + ex.getMessage(), "Erro!", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        } finally {
            JOptionPane.showMessageDialog(null, "Conectado com o Oracle!", "Conectado com o Oracle!", JOptionPane.INFORMATION_MESSAGE);
        }
        try {
            stmt = conexao.createStatement();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Criando Statement Oracle!", "Erro!", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }
        JOptionPane.showMessageDialog(null, "Executando Query!", "Executando Query!", JOptionPane.INFORMATION_MESSAGE);
        try {
            rset = stmt.executeQuery(Query);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Executando Query!", "Erro!", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }
        JOptionPane.showMessageDialog(null, "Query Executada!", "Query Executada!", JOptionPane.INFORMATION_MESSAGE);
        try {
            while (rset.next()) {
                JOptionPane.showMessageDialog(null, rset.getString(1), "Resultados!", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Obtendo valores da Query: " + ex.getMessage(), "Erro!", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }
        try {
            conexao.close();
            ODS.close();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema Fechando Conexão!", "Erro!", JOptionPane.ERROR_MESSAGE);
            System.exit(0);
        }
        JOptionPane.showMessageDialog(null, "Programa Concluido!", "Programa Concluido!", JOptionPane.INFORMATION_MESSAGE);
    }                                        

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel mainPanel;
    // End of variables declaration                   
}

Na verdade somente fiz um copiar e colar e troquei os System.out.println por JOptionPane.showMessageDialog para ficar mais “Windows”.
E aqui esta o problema: O primeiro programa funciona legal, inclusive testei com uma query mais parruda e tudo funcionou legal, os dados foram mostrados como deveriam. Mas o segundo não, ele cria o OracleDatSource e depois, quando vai executar o getConnection, ele fica uma semana pensando e depois da o erro “the network adapter could not establish the connection”.

Se alguém souber como resolver esta encrenca, desde já agradeço.

Marcos Malfatti.

5 Respostas

pintofree

Vc sinceramente espera conseguir ajuda de alguem em algo tão basico utilizando este titulo no topico?

M

Sinceramente eu não sou um expert em Java, se fosse não estaria colocando uma dúvida destas e sim ajudando meus colegas que tenham problemas.
Fazem aproximadamente 2 semanas que eu estou lendo tutoriais, livros e API do Java para tentar solucionar esse problema, que esta causando a parada de toda a equipe de desenvolvimento. Inclusive mostrei este problema para 3 professores de Java da Universidade e eles também não souberam explicar o que estava ocorrendo.
Se, por algum motivo, eu insultei alguém, por favor aceitem minhas sinceras desculpas, não foi esta a minha intenção. Somente estou precisando de um apoio em um problema estranho que vários desenvolvedores Java já tentaram e ninguém sabe o que esta acontecendo.

Marcos Malfatti.

P

Vc sinceramente espera conseguir ajuda de alguem em algo tão basico utilizando este titulo no topico?

É a velha (e ridícula) tática noob de apelar para o ego das pessoas…

robinsonbsilva

Jovem, sem mágoas :shock:

A turma do GUJ só quer o bem da comunidade…

Agora em relação ao seu problema, tenta debugar o evento do seu botão.
Esse erro mostrado normalmente ocorre quando a rede cai…

pintofree

marcosmalfatti:
Sinceramente eu não sou um expert em Java, se fosse não estaria colocando uma dúvida destas e sim ajudando meus colegas que tenham problemas.
Fazem aproximadamente 2 semanas que eu estou lendo tutoriais, livros e API do Java para tentar solucionar esse problema, que esta causando a parada de toda a equipe de desenvolvimento. Inclusive mostrei este problema para 3 professores de Java da Universidade e eles também não souberam explicar o que estava ocorrendo.
Se, por algum motivo, eu insultei alguém, por favor aceitem minhas sinceras desculpas, não foi esta a minha intenção. Somente estou precisando de um apoio em um problema estranho que vários desenvolvedores Java já tentaram e ninguém sabe o que esta acontecendo.

Marcos Malfatti.

Bem amigos criando topicos com esse tipo de nome vc so consegue mostrar que é uma criança.

Se vc tem um problema de conexão com o Oracle coloque no titulo “Erro Conexão - Oracle” ai ajudarei.

Criado 28 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 5
Participantes 4