Oracle - Teste de conexão com o banco
Publicado por Leandro Nkz (última atualização em 24/06/2013)
[ Hits: 13.650 ]
Homepage: http://brweatherproject.blogspot.com/
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/
/* 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); } }
Classe Java para conectar ao Mysql em um servidor remoto
Conexão com MySQL usando a linguagem Java
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Recuperar arquivos de HD em formato RAW usando Linux (0)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta