Satellite Internet QuickBooks Advice international calling cards calling cards
JavaBeat Certifications Certifications Kits Articles Tips QNA Interview Questions SCJP 1.5 SCBCD 5.0 Java/J2EE Feeds
Feedback Request New Tips Print Email

Knowing about your Database

Author : Christy
Date : Fri Oct 26th, 2007
Topic : java
Add to: Digg Add to: Del.icio.us Add to: Reddit Add to: StumbleUpon Add to: Slashdot Add to: Yahoo Add to: Google Add to: Blinklist Add to: Technorati Information

We use the Jdbc APIs for accessing the data from the database system. However, the different databases from different vendors will vary a lot in their underlying model and functionalities. For example, a feature supported in one database might not be supported in another database. So, even before working with a database, it is important to know the supported features and other related information. Java provides an interface called DatabaseMetaData to achieve this.

The implementation for this interface will give the Driver vendor itself and the information obtained from this interface will help both the Tool Vendors and Application Developers. Let us see how to get a reference to this interface,


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:odbcEmployeeDS");
DatabaseMetaData metadata  = connection.getMetaData();

Now, let us see how to make use of this metadata interface to get information about the database. Consider the following code snippet which prints the product name and version information related to a database.


System.out.println(metaData.getDatabaseProductName());
System.out.println(metaData.getDatabaseProductVersion());
System.out.println(metaData.getDatabaseMajorVersion());
System.out.println(metaData.getDatabaseMinorVersion());

It is important to understand that the methods may or may not support the requested operation. Say, for example, if a particular database doesn't have the notion of minor or major version for its product, then they possibly return null or may throw UnsupportedOperationException at the run-time.

This metadata interface has a huge list of "supports*" method to check whether a particular feature or an operation is supported by the database. For example, consider the following code snippet,


System.out.println(metaData.supportsAlterTableWithDropColumn());
System.out.println(metaData.supportsColumnAliasing());
System.out.println(metaData.supportsGroupBy());
System.out.println(metaData.supportsTransactions());
System.out.println(metaData.supportsMultipleTransactions());
System.out.println(metaData.supportsOuterJoins());
System.out.println(metaData.supportsSavepoints());

The first statement will return true if the database supports dropping of a column while making modifications to the table structure. The second statement returns true if the column names are referred through multiple identifiers, which is called as column aliasing. The third one will return true if the GROUP BY clause can be used in SQL query. The fourth and the fifth statements are related to supporting single and multiple transactions. The seventh statement will return true if outer joins can be mentioned in a query. And the final statement returns true if the database supports save points which refers to some point in a database session, after which all the statements can be committed or can be roll backed.

In this section, we have discussed only a very few methods as there are so may methods available in this interface. To know about this in detail, it is advised to have a glance over the Java documentation.

Feedback Request New Tips Print Email

Favorites
C# problem error
Free Newsgroups
Latest QnA
SCJD Tips
When we start a thread by applying start() method on it ,how does it knows that to execute run()method?
About Wrapper class in Java
How to configure weblogic 7.0 in MyEclipse?
Static Block and Static Initializer in Java

JavaBeat Website (2004-2009), India
javabeat | about us | useful resources
Copyright (2004 - 2009), JavaBeat