sql >> Database teknologi >  >> RDS >> Oracle

programmæssig kontrol af åben forbindelse i JDBC

Noget som:

Statement stmt = null;
ResultSet rs =null;
try {
   stmt = conn.createStatement();
   // oracle
   rs = stmt.executeQuery("SELECT 1 FROM Dual");
   // others
   // rs = stmt.executeQuery("SELECT 1");
   if (rs.next())
      return true; // connection is valid
}
catch (SQLException e) {
   // TODO : log the exception ...
   return false;
}
finally {
   if (stmt != null) stmt.close();
   if (rs != null) rs.close();
} 

Bemærk, at hvis forbindelsen kommer fra en forbindelsespulje (f.eks. på en applikationsserver), kan poolen have en mekanisme til at kontrollere, om en forbindelse er gyldig eller ej. Med BEA angiver du SELECT i egenskaben "test-on-reserve".

Hvis du udvikler din egen pool, vil du måske tage et kig på, hvordan andre gør det (f.eks. Proxool).



  1. ODP.NET Managed bibliotek løser alias, men 32-bit bibliotek gør

  2. TSQL md5 hash forskellig fra C# .NET md5

  3. Bedre samtidighed i Oracle end SQL Server?

  4. SQL Server ALL Operator forklaret