Before you can connect to a database, you need to load the driver. There are two methods available, and it depends on your code which is the best one to use.
In the first method, your code implicitly loads the driver using the
For PostgreSQL™, you would use:
Class.forName("org.postgresql.Driver");This will load the driver, and while loading, the driver will automatically register itself with JDBC.
forName() method can throw a
ClassNotFoundException if the driver is
This is the most common method to use, but restricts your code to use just PostgreSQL™. If your code may access another database system in the future, and you do not use any PostgreSQL™-specific extensions, then the second method is advisable.
The second method passes the driver as a parameter to the
JVM as it starts, using the
java -Djdbc.drivers=org.postgresql.Driver example.ImageViewerIn this example, the JVM will attempt to load the driver as part of its initialization. Once done, the
Now, this method is the better one to use because it allows your code to be used with other database packages without recompiling the code. The only thing that would also change is the connection URL, which is covered next.
One last thing: When your code then tries to open a
Connection, and you get a No
being thrown, this is probably caused by the driver not being in
the class path, or the value in the parameter not being correct.