Monday, May 24, 2010

Retrieving Tables from a Database

In database system it is very important to know about the tables. To work with this, it is very important to know how to retrieve a table and create a table in the database. This section provides you a facility for retrieving tables from a specific database through an example. In relational database, all the data is stored in the tabular format (rows and columns). See detail information below:

Description of program:

In this program we are establishing the connection between the MySQL database and java file. We will retrieve the table with the help of some java methods and APIs interface. If the database has one or more tables then it shows all tables, otherwise displays the message "No any table in the database".

Description of code:

DatabaseMetaData:
This is an interface of java.sql package that implemented by driver vendors. It tells about the data of the data like number of tables in the database , the information about the columns of the table.

getMetaData():
It is a method of Connection interface. This method has metadata around the database and retrieves DatabaseMetaData object.

ResultSet:
The ResultSet is an interface that provides getter methods (getBoolean, getString, getTable and so on) for retrieving values. A ResultSet object is by default not updatable and forward only.

getTables(null, null, "%", types):
This method returns ResultSet and takes the following string types parameter:

catalog : Table catalog name (may be null)
schemaPattern : Table catalog name (may be null)
tableNamePattern : Table name("%")
types : Table type

rs.next():
This method returns the next element of the ResultSet object.

getString("Table name"):
Above method retrieves the values from ResultSet object. It takes string type value.

Here is the code of program:

import java.sql.*;

public class AllTableName{
public static void main(String[] args) {
System.out.println("Listing all table name in Database!");
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
try{
Class.forName(driver);
con = DriverManager.getConnection(url+db, user, pass);
try{
DatabaseMetaData dbm = con.getMetaData();
String[] types = {"TABLE"};
ResultSet rs = dbm.getTables(null,null,"%",types);
System.out.println("Table name:");
while (rs.next()){
String table = rs.getString("TABLE_NAME");
System.out.println(table);
con.close();
}
}
catch (SQLException s){
System.out.println("No any table in the database");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}

No comments:

Post a Comment