Classe Conexao (só cai no catch)

Olá pessoal! Novamente preciso de uma mãozinha nas linhas de código…
Fiz uma classe Conexao e fiz uma tela que instância esta classe e verifica se foi realizada a conexao no banco. Dêem uma olhadinha no código:

Classe Conexao:

[code]
package jteste;

import java.sql.*;

public class Conexao {
String JDBC_DRIVER = “oracle.jdbc.driver.OracleDriver”;
String DB_URL = “jdbc:oracle:thin:@localhost:1521:XE”;
String DB_USER = “berto”;
String DB_PASS = “berto”;
Connection conn;
String situacao;

/** Creates a new instance of Conexao */
public Conexao() {
    conn = null;
    situacao = null;
}

public void Conecta () {
try {  
        Class.forName(JDBC_DRIVER);
        conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);

        System.out.println("Funfou a conexão");
        situacao = "Funfou a conexão";
        conn.close();  
}   
catch (Exception e) {
        e.printStackTrace(System.out);
        System.out.println("NÃO Funfou a conexão");
        situacao = "Não funfou a conexão";
}  

}

}[/code]

E este é código do formulário:

package jteste;

import java.awt.Label;

public class JPrincipal extends javax.swing.JFrame {
    
    public JPrincipal() {
        initComponents();
        setBounds(200,200,500,350);
    }
    
   
    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        getContentPane().add(jButton1);
        jButton1.setBounds(230, 80, 150, 23);

        jLabel1.setFont(new java.awt.Font("Arial", 0, 14));
        jLabel1.setText("jLabel1");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(30, 20, 220, 50);

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Conexao con = new Conexao ();
        con.Conecta();
        jLabel1.setText(con.situacao);
    }                                        
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JPrincipal().setVisible(true);
            }
        });
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    // Fim da declaração de variáveis                   
    
}

O que acontece é que no formulário a Label1 (que recebe a variável situacao só recebe “Não funfou a conexão”… eu imagino que na classe conexao no metódo conecta ele só cai no catch, fazendo a variável situacao receber “Não funfou a conexão”…

Por favor se alguém puder me ajudar, agradeço desde já.

berto

coloca o stacktrace aqui

Uma dica…

Não chame uma variável como você fez ali, encapsule-a.

Faça assim…
Classe Conexao

String mSituacao;

public void setSituacao(String situacao){

  mSituacao = situacao;

}

public String getSituacao(){

  return mSituacao;

}

No método Conecta, troque situacao por this.setSituacao(“Funfou”);

E na classe JPrincipal faça o seguinte:

con.getSituacao();

Taí uma sugestão…

Abraços.

Obrigado pela dica ckornell, mas continua não funcionando…

Pessoal quando eu executo o Formulário no NetBeans E clico no Botão na parte de baixo ele dá a seguinte mensagen:

init:
deps-jar:
compile-single:
run-single:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:XE

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at jteste.Conexao.Conecta(Conexao.java:28)
        at jteste.JPrincipal.jButton1ActionPerformed(JPrincipal.java:41)
        at jteste.JPrincipal.access$000(JPrincipal.java:5)
        at jteste.JPrincipal$1.actionPerformed(JPrincipal.java:24)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:5501)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
        at java.awt.Component.processEvent(Component.java:5266)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3968)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1778)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
NÃO Funfou a conexão
EXECUTADO COM SUCESSO (tempo total: 3 segundos)

É isso que eu não estou entendendo.
Claro que eu tomo o cuidado de levantar o banco…

Por favor, se alguém puder me ajudar, sou grato desde já.

Berto

[quote=berto_man]…

... java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:XE ...
…[/quote]
Olá!
A mensagem é assaz explicativa. Ele recusa conexão pois não passa os dados corretos. A URL de conexão ao banco em geral é (pelo thin driver):

jdbc:oracle:thin:usuario/senha@host:porta:database

Pode-se omitir na URL de conexão o usuário e senha, desde que passes via método. Tente aí.

Até!

Nossa maquiavelbona, valeu!

Obrigado pela dica!

Qual é esse thin driver ?

onde encontro para download ?