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
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. */importjava.sql.*;importjava.io.*;importjava.util.*;classTestaConexaoOracle{publicstaticvoidmain(Stringargs[])throwsSQLException,IOException{Stringuser,password,servidor,porta,banco,strSQL;StringstrSQLdef="select SYSDATE from dual";StringdatabaseURL;DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());System.out.println("Entre com as informacoes para TESTAR a conexao com o DATABASE");// Dados para a Conexaoservidor=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();Connectionconn=DriverManager.getConnection(databaseURL,user,password);System.out.println(" conectado ... ");// Create a statementStatementstmt=conn.createStatement();// ResultSet rset = stmt.executeQuery ("select SYSDATE from dual");ResultSetrset=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 entradastaticStringreadEntry(Stringprompt){try{StringBufferbuffer=newStringBuffer();System.out.print(prompt);System.out.flush();intc=System.in.read();while(c!='n'&&c!=-1){buffer.append((char)c);c=System.in.read();}returnbuffer.toString().trim();}catch(IOExceptione){return"";}}}
[]'s
H
hroberPJ
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