Verificar conexao(banco de dados)

2 respostas
H

olá…

como eu posso testar seu uma conexao com o banco de dados eh valida ?

Explico,

fiz uma classe que se conecta ao Mysql, o objeto instanciado eh declarado como static, assim eu uso essa mesma conexao em outras classes, mas pode acontecer da conexao ser encerada pelo servidor… entao eu queria testar se a conexao ainda eh valida antes de efetuar as querys :slight_smile:

como eu posso fazer isso ?

abracos

2 Respostas

C

Oi hrober,

achei esse código pra você em Oracle, mas se for outro banco, é só alterar algumas coisas.

/**
 * Este exemplo testa a conexão JDBC com Oracle. 
 */

import java.sql.*;
import java.io.*;
import java.util.*;

class TestaConexaoOracle
{
   public static void main (String args []) throws SQLException, IOException
  {

   String user, password, servidor, porta, banco, strSQL;
   String strSQLdef = "select SYSDATE from dual";
   String databaseURL;

   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

   System.out.println ("Entre com as informacoes para TESTAR a conexao com o DATABASE");

   // Dados para a Conexao
   servidor = readEntry ("SERVIDOR: ");
   banco = readEntry("BANCO: ");
   user = readEntry ("USUARIO: ");
   password = readEntry ("SENHA: ");
   porta = readEntry ("PORTA (default 1521): ");
   strSQL = readEntry ("STRING 'SQL': ");

   if ( strSQL == null || strSQL.equals("") )
   {
       strSQL = strSQLdef;
   }

   databaseURL = "jdbc:oracle:thin:@" + servidor + ":" + porta + ":" + banco;

   System.out.print ("Conectando-se ao Banco ... ");
   System.out.flush ();

   Connection conn = DriverManager.getConnection (databaseURL, user, password);

   System.out.println (" conectado ... ");

   // Create a statement
   Statement stmt = conn.createStatement ();

   // ResultSet rset = stmt.executeQuery ("select SYSDATE from dual");
   ResultSet rset = stmt.executeQuery(strSQL);

   while (rset.next ())
   {
      System.out.println ("  -> Resultado do SELECT: " + rset.getString (1));
   }

   System.out.println ("Conexao JDBC ok."); 
 }

	// Function para ler as informações de entrada
	static String readEntry (String prompt)
	{
   try
   {
       StringBuffer buffer = new StringBuffer ();
       System.out.print (prompt);
       System.out.flush ();
       int c = System.in.read ();

       while (c != 'n' && c != -1)
      {
          buffer.append ((char)c);
          c = System.in.read ();
      }

      return buffer.toString ().trim ();
    } catch (IOException e) {
       return "";
    }
  }
}

[]'s

H

mas pelo que entendi nesse codigo ele executa uma query pra ver se a conexao esta okay… com query eh meio que ‘gambiarra’, sera que nao tem algum, metodo, tem connection.isClosed() mas esse se connection nao ter sido declarada (connection = DriverManager.get…) ele gera exption :frowning:

abracos

Criado 2 de novembro de 2004
Ultima resposta 2 de nov. de 2004
Respostas 2
Participantes 2