sql >> Databasteknik >  >> RDS >> Oracle

Java ansluter till flera databaser

Du lagrar en unik datakälla (och anslutning och dbMainConnection) i en statisk variabel för din klass. Varje gång någon frågar efter en datakälla ersätter du den tidigare med den nya. Om ett undantag inträffar när en datakälla hämtas från JNDI, förblir den statiska datakällan som den är. Du bör inte lagra något i en statisk variabel. Eftersom din dbMainConnection-klass är konstruerad med namnet på en databas, och det finns flera databasnamn, är det ingen mening att göra den till en singelton.

Använd bara följande kod för att komma åt datakällan:

public final class DataSourceUtil {
    /**
     * Private constructor to prevent unnecessary instantiations
     */
    private DataSourceUtil() {
    }

    public static DataSource getDataSource(String name) {
        try {
            Context ctx = new InitialContext();
            String database = "jdbc/" + name;
            return (javax.sql.DataSource) ctx.lookup (database);
        }
        catch (NamingException e) {
            throw new IllegalStateException("Error accessing JNDI and getting the database named " + name);
        }
    }
}

Och låt uppringarna få en anslutning från datakällan och stänga den när de har slutat använda den.



  1. ORA-00905:sökordsfel saknas oracle

  2. Hur kan jag få de nedersta 50 % av en utvald fråga i SQL-servern?

  3. Få liknande longitud och latitud från databasen

  4. Hämta aktuella loggade användardetaljer för tabellen jhi_persistenet_audit_event