Oracle
 sql >> база данни >  >> RDS >> Oracle

Java се свързва с множество бази данни

Вие съхранявате уникален източник на данни (и връзка, и dbMainConnection) в статичен променлива на вашия клас. Всеки път, когато някой поиска източник на данни, вие заменяте предишния с нов. Ако възникне изключение при получаване на източник на данни от JNDI, статичният източник на данни остава такъв, какъвто е. Не трябва да съхранявате нищо в статична променлива. Тъй като вашият клас dbMainConnection е конструиран с името на база данни и има няколко имена на база данни, няма смисъл да го правите сингълтън.

Просто използвайте следния код за достъп до източника на данни:

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);
        }
    }
}

И позволете на обаждащите се да получат връзка от източника на данни и да го затворят, когато приключат с използването му.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обединете две таблици въз основа на времето

  2. Против лиценза ли е публикуването на тест за производителност на Oracle и SQL Server?

  3. Функция за извикване на VBA чрез VBA и ADO

  4. ТИП Промяна на дефиниция в Oracle 21c

  5. Как да извлека само стойност на датата от полето за дата в Oracle?