Whats the difference between Driver and DriverManager?
Driver is a Java interface that declares a standard set of methods that a database server is expected to provide. A database vendor must supply their own server-specific JDBC code that implements the Driver interface and a number of supporting types, including Connection, Statement and ResultSet. Since all these key Java DataBase Connectivity (JDBC) components are defined as Java interfaces, the vendor-specific implementations can dynamically be loaded at runtime without hard coded references to their fully qualified class names. A database vendor’s JDBC implementation code is usually distributed in the form of a Java Archive (JAR) file that you include in your application’s classpath at runtime. DriverManager is one of the few concrete implementation classes built into the java.sql package and serves as a static registry of the JDBC Drivers available to the Java runtime system. As a Driver class is loaded it is expected to register itself with the DriverManager class by calling its st