Oracle - Teste de conexão com o banco

Publicado por Leandro Nkz (última atualização em 24/06/2013)

[ Hits: 13.651 ]

Homepage: http://brweatherproject.blogspot.com/

Download OraJavaTest.java




Olá a todos!

Esta simples aplicação testa a conexão com o banco de dados Oracle, usando o driver JDBC.

Ela foi a precursora desta outra: http://www.vivaolinux.com.br/dica/OraPlus-Simples-gerenciador-para-o-banco-de-dados-Oracle/

Utilização:

Primeiro, baixe o driver mais recente aqui (necessário possuir um cadastro - gratuito): http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

Baixe o arquivo Java e compile-o:

$ javac OraJavaTest.java

Por fim, execute, informando o local onde você salvou o driver (.jar):

$ java -cp /caminho_para_o_driver/ojdbc5.jar:`pwd` OraJavaTest

Neste exemplo, eu salvei o driver em /home/leandro/Downloads:

$ java -cp /home/leandro/Downloads/ojdbc5.jar:`pwd` OraJavaTest

Para quem quiser, aqui está disponível a versão empacotada desta aplicação (.jar):

http://sourceforge.net/projects/oraplus/files/

  



Esconder código-fonte

/* Simples teste de conexão para o banco de dados Oracle
 * Criado por Leandro Nkz <http://www.vivaolinux.com.br/~leandro>
 *
 * Licença:
 * Programa disponível no estado em que está. Sem nenhuma garantia ou suporte
 * por parte do desenvolvedor.
 * Você é livre para redistribuí-lo e/ou modificá-lo ou até mesmo criar obras
 * derivadas, desde que respeite os termos da GNU GENERAL PUBLIC LICENSE versão 3,
 * disponível em: <http://www.gnu.org/licenses/gpl.html>
 *
 */
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class OraJavaTest extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;
    JLabel titulo, banco, login, senha, port, host;
    JTextField t_banco, t_login, t_port, t_host;
    JTextArea result;
    JPasswordField t_senha;
    JButton ok, cancel, limpar;
    String status = null;

    public OraJavaTest() {
        setTitle("OraJavaTest");
        setSize(400,350);
        setResizable(false);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        getContentPane().setBackground(Color.WHITE);
        setLayout(new GridBagLayout());
        GridBagConstraints grid = new GridBagConstraints();
        grid.insets = new Insets(5, 5, 0, 5);
        grid.ipady = 10;

        titulo = new JLabel("Oracle Database - Teste de conexão");
        grid.anchor = GridBagConstraints.CENTER;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 0;
        grid.gridwidth = 4;
        getContentPane().add(titulo, grid);

        host = new JLabel("Host:");
        grid.anchor = GridBagConstraints.EAST;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 1;
        grid.gridwidth = 1;
        getContentPane().add(host, grid);

        t_host = new JTextField();
        t_host.setToolTipText("Domínio ou IP do servidor");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 150;
        grid.gridx = 1;
        grid.gridy = 1;
        grid.gridwidth = 1;
        getContentPane().add(t_host, grid);

        port = new JLabel("Porta:");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 0;
        grid.gridx = 2;
        grid.gridy = 1;
        grid.gridwidth = 1;
        getContentPane().add(port, grid);

        t_port = new JTextField();
        t_port.setToolTipText("Porta de conexão. O padrão é 1521");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 50;
        grid.gridx = 3;
        grid.gridy = 1;
        getContentPane().add(t_port, grid);


        banco = new JLabel("Banco:");
        grid.anchor = GridBagConstraints.EAST;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 2;
        grid.gridwidth = 1;
        getContentPane().add(banco, grid);

        t_banco = new JTextField();
        t_banco.setToolTipText("Se você usa o Oracle XE, o padrão é XE");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 268;
        grid.gridx = 1;
        grid.gridy = 2;
        grid.gridwidth = 3;
        getContentPane().add(t_banco, grid);

        login = new JLabel("Login:");
        grid.anchor = GridBagConstraints.EAST;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 3;
        grid.gridwidth = 1;
        getContentPane().add(login, grid);

        t_login = new JTextField();
        t_login.setToolTipText("Login de usuário");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 268;
        grid.gridx = 1;
        grid.gridy = 3;
        grid.gridwidth = 3;
        getContentPane().add(t_login, grid);

        senha = new JLabel("Senha:");
        grid.anchor = GridBagConstraints.EAST;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 4;
        grid.gridwidth = 1;
        getContentPane().add(senha, grid);

        t_senha = new JPasswordField();
        t_senha.setToolTipText("Senha do usuário");
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 268;
        grid.gridx = 1;
        grid.gridy = 4;
        grid.gridwidth = 3;
        getContentPane().add(t_senha, grid);

        grid.ipady = 0;

        ok = new JButton("OK");
        ok.setFocusable(false);
        ok.setForeground(new Color(255,255,255));
        ok.setBackground(new Color(0,150,0));
        ok.addActionListener(this);
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 5;
        grid.gridwidth = 1;
        getContentPane().add(ok, grid);

        cancel = new JButton("Cancelar");
        cancel.setFocusable(false);
        cancel.setForeground(new Color(255,255,255));
        cancel.setBackground(new Color(150,0,0));
        cancel.addActionListener(this);
        grid.anchor = GridBagConstraints.WEST;
        grid.ipadx = 0;
        grid.gridx = 1;
        grid.gridy = 5;
        grid.gridwidth = 2;
        getContentPane().add(cancel, grid);

        limpar = new JButton("Limpar");
        limpar.setFocusable(false);
        limpar.setForeground(new Color(0,0,0));
        limpar.setBackground(new Color(255,255,255));
        limpar.addActionListener(this);
        grid.gridx = 2;
        grid.gridy = 5;
        grid.gridwidth = 2;
        grid.anchor = GridBagConstraints.EAST;
        getContentPane().add(limpar, grid);

        result = new JTextArea("\n\n\n\n",10,30);
        result.setForeground(Color.RED);
        result.setEditable(false);
        result.setFont(new Font("verdana", Font.PLAIN, 15));
        grid.ipady = 0;
        grid.ipadx = 0;
        grid.gridx = 0;
        grid.gridy = 7;
        grid.gridwidth = 4;
        grid.anchor = GridBagConstraints.CENTER;
        getContentPane().add(result, grid);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource()==ok) {
            if (connection()==true) {
                JOptionPane.showMessageDialog(null, "Falha na conexão:\n" + status, "Erro", JOptionPane.ERROR_MESSAGE);
                result.setText("\n\n\n\n");
            }
        }

        if (e.getSource()==cancel) {
            System.exit(0);
        }

        if (e.getSource()==limpar) {
            t_banco.setText(null);
            t_port.setText(null);
            t_login.setText(null);
            t_senha.setText(null);
            t_host.setText(null);
            result.setText("\n\n\n\n");
        }
    }

    boolean connection() {
        try {
            String banco = t_banco.getText();
            String host = t_host.getText();
            String port = t_port.getText();
            String url = "jdbc:oracle:thin:@" + host + ":" + port + ":" + banco;
            String usuario = t_login.getText();
            String senha = new String(t_senha.getPassword());
            Connection cn = null;

            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            cn = DriverManager.getConnection( url, usuario , senha);
            Statement st;

            String sql = "select sys_context('userenv', 'session_user') \"USER\", " +
                    "sys_context('userenv', 'instance_name') \"BD\", " +
                    "sys_context('userenv', 'server_host') \"SERVER\" from dual";
            String sql2 = "select admin_option \"ADMIN\" from user_role_privs";

            st = cn.createStatement();
            ResultSet res = st.executeQuery(sql);

            res.next();
            String USER = res.getString("USER");
            String BD = res.getString("BD");
            String SERVER = res.getString("SERVER");

            ResultSet res2 = st.executeQuery(sql2);
            res2.next();
            String ISADM = res2.getString("ADMIN");

            if (ISADM.equals("YES")) {
                ISADM = " ";
            } else {
                ISADM = " não ";
            }

            result.setText("Conexão efetuada com sucesso!\nVocê se logou como: "
                    + USER + "\nNa instância: "+ BD + "\nQue está no servidor: " +
                    SERVER + "\nE você" + ISADM + "possui privilégios de admin.");

            st.close();
            cn.close();
        } catch(SQLException e) {
            status = e.getMessage();
            return true;
        } catch(ClassNotFoundException e) {
            status = "Não foi possível carregar o driver:\n" + e.getMessage();
            return true;
        } catch(Exception e) {
            status = e.getMessage();
            return true;
        }
        return false;
    }

    public static void main (String args[]) {
        System.setProperty("swing.aatext", "true" );
        System.setProperty("awt.useSystemAAFontSettings","on");
        new OraJavaTest().setVisible(true);
    }
}

Scripts recomendados

Script para Conexão com Oracle

Integração Java + Firebird

Agenda Java + MySQL que gera relatório PDF

Cadastro de Clientes com GUI e MySQL

Conexao Java com Firebird


  

Comentários
[1] Comentário enviado por diegonator em 15/01/2014 - 19:23h

Cara Parabens , ficou show de bola ...
Estava precisando justamente de algo assim para testar conexões com o oracle qdo eh necessario subir aplicacoes q se conectam com ele rs ...

Abs

[2] Comentário enviado por leandro em 17/01/2014 - 08:47h

Obrigado, Diego! =)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts