Verbidung zur MySQL DB unterschiede?

Hallo

Auf Stackoverflow habe ich gelesen wie einer eine Verbindung zu der MySQL DB herstellt indem er die DriverManager Methode wählt. Ein anderer fragte ihn warum er nicht MySQLDatasource benutzen würde, es wäre doch viel moderner und besser.

Ich habe jetzt beide Methoden ausprobiert und beide klappen gut. Ich würde gerne Wissen wo der Unterschied genau ist. Sollte ich Datasource wirklich bevorzugen? Welche Vorteile hat es?

Danke

java - Why do we use a DataSource instead of a DriverManager? - Stack Overflow

Im JEE-Umfeld (Application Server und/oder Webcontainer) ist es nie gut, Zugriff auf externe Resourcen (Datenbanken, Fileysteme, Mailserver, LDAPserver etc.) hart in Dein Programm zu codieren. Das behindert die Portierbarkeit und ist auch unsicherer.

Am Beispiel JDBC hättest Du bspw. irgendwo die Zugangsdaten zu pflegen. In der Container-Welt würden diese vom Admin des Servers konfiguriert und nur der Zugriff darauf dem Andwendungsentwickler als Datasource zur Verfügung gestellt. (Das kam in dem SO-Thread nicht so gut raus, deswegen hab ich’s nochmal explizit hingeschrieben).

eine MySQLDatasource ist aber auch ziemlich festkodiert mit benötigter Library zur Compile-Zeit,
etwas bedenkliches Vorgehen, falls nicht für bestimme MySQL-Einstellungen explizit benötigt

ob DriverManager oder DataSource, da gibt es sicher Unterschiede (muss die DataSource irgendwo als eigenständiges Programm laufen?)

ein interessanter Punkt ist aber jedenfalls, ein Programm unabhängig von bestimmten Datenbanken und Treibern zu machen,
Driver-Library beigeben, Konfiguration über separate Dateien, dann zum Neustart oder ganz gewitzt auch zur Laufzeit wechselnd mit verschiedenen Datenbanken laufffähig