wood burning stoves 2.0*
The moose likes JDBC and the fly likes ways in doing database connection? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "ways in doing database connection?" Watch "ways in doing database connection?" New topic
Author

ways in doing database connection?

bhuvi mdu
Greenhorn

Joined: May 03, 2005
Posts: 17
Hi,

The database connection can be done by the following days:-

1) DriverManager.getConnection
2) Class.forName

I wanna know the difference between the two and is there any other way to do the database connection and what for we are using Class.forName to do the database connection.

bhuvi
Srinivasa Raghavan
Ranch Hand

Joined: Sep 28, 2004
Posts: 1228
Hi
For getting the connection using DriverManager class, an instane of the driver is required in the registerDriver method. But Class.forName returns the Class object associated with the class or interface with the given string name, so you can even tell the driver to be used by your program using the property file.


Thanks & regards, Srini
MCP, SCJP-1.4, NCFM (Financial Markets), Oracle 9i - SQL ( 1Z0-007 ), ITIL Certified
Jan Groth
Ranch Hand

Joined: Feb 03, 2004
Posts: 456
Hello Bhuvi,

your question is not general at all, and can therefore not be answered in an easy / obvious way.

DriverManager.getConnection() returns an object (as described in the DriverManger documentation of your database). Probably a Connection-Object ;-) That's fix atcompile time.

Class.forName() returns a reference to a class object. Dynamically determined at run time.

The latter has no specific relation to a DB-connection. But it can be used to get a db connection (and all other classes in your project).

hope that helps,
jan.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Moving to JDBC forum...


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Shailesh Chandra
Ranch Hand

Joined: Aug 13, 2004
Posts: 1081

From the java docs guide:

Class.forName

by calling the method Class.forName. This explicitly loads the driver class.
loading the class causes an instance to be created and also calls DriverManager.registerDriver with that instance as the parameter, then it is in the DriverManager's list of drivers and available for creating a connection.

DriverManager.getConnection

Once the Driver classes have been loaded and registered with the DriverManager class, they are available for establishing a connection with a database. When a request for a connection is made with a call to the DriverManager.getConnection method, the DriverManager tests each driver in turn to see if it can establish a connection.

It may sometimes be the case that more than one JDBC driver is capable of connecting to a given URL
In such cases, the order in which the drivers are tested is significant because the DriverManager will use the first driver it finds that can successfully connect to the given URL.

First the DriverManager tries to use each driver in the order it was registered. (The drivers listed in jdbc.drivers are always registered first.) It will skip any drivers that are untrusted code unless they have been loaded from the same source as the code that is trying to open the connection.


Shailesh


Gravitation cannot be held responsible for people falling in love ~ Albert Einstein
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: ways in doing database connection?
 
Similar Threads
database connectivity
On class.forname() in JDBC
Why we require Class.forName() multiple times
new to JDBC. Please help !
Transaction related