Set WeberTrivia.com to be my default homepage.   Suggest a Question                                               

Suggest A Question : :  Frequently Asked Questions : :  Search : :  Relevant Manuals : : 
PHP Questions : :  Linux Questions : :  MySQL Questions : : 
home  [ Login ] 

31.2. Initializing the Driver

This section describes how to load and initialize the JDBC driver in your programs.

31.2.1. Importing JDBC

Any source that uses JDBC needs to import the java.sql package, using:

import java.sql.*;

Note: Do not import the org.postgresql package. If you do, your source will not compile, as javac will get confused.

31.2.2. Loading the Driver

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 Class.forName() method. 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.

Note: The forName() method can throw a ClassNotFoundException if the driver is not available.

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 -D argument. Example:

java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer

In this example, the JVM will attempt to load the driver as part of its initialization. Once done, the ImageViewer is started.

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 driver available SQLException being thrown, this is probably caused by the driver not being in the class path, or the value in the parameter not being correct.

31.2.3. Connecting to the Database

With JDBC, a database is represented by a URL (Uniform Resource Locator). With PostgreSQL, this takes one of the following forms:

  • jdbc:postgresql:database
  • jdbc:postgresql://host/database
  • jdbc:postgresql://host:port/database

The parameters have the following meanings:

host

The host name of the server. Defaults to localhost. To specify an IPv6 address your must enclose the host parameter with square brackets, for example:

jdbc:postgresql://[::1]:5740/accounting

port

The port number the server is listening on. Defaults to the PostgreSQL standard port number (5432).

database

The database name.

To connect, you need to get a Connection instance from JDBC. To do this, you use the DriverManager.getConnection() method:

Connection db = DriverManager.getConnection(url, username, password);

31.2.4. Closing the Connection

To close the database connection, simply call the close() method to the Connection:

db.close();

Who's Online
Guest Users: 5
Google
Web
WeberTrivia
WeberDev
WeberForums
 Free Sample Chapters  Free Sample Chapters
  Deliver First Class Web Sites: 101 Essential Checklists
Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?

More Sample Chapters

PHP General