Monday, May 24, 2010

Description of Database Table

This section introduces you how to get the detailed information about the database table. As we all know that, table has some specific information like: field, type, null etc. But how to get all those information by the database. By using a simple query we can get all information about the table like the number of columns and rows in it, its type, whether the field is null or not, whether the column is unique or primary and much more.

Description of program:

While making this program firstly we should establish the connection with MySQL database through the JDBC driver. When the connection has been established, pass the table name in the database query and use some java methods to get the detail description of table. When the program will gets execute then it will show field name, type and null of the database table. If any field have null value then shows "YES" and if not null then shows "NO". If any problem is created at the time of query, it will show "SQL statement is not executed!".

Description of code:

DESCRIBE table_name;
This code is used to know the brief description of a database table. It takes the name of that table of which we want to see the description.

getColumns(String cat, String sche, String tab, String col_pat)::
This method returns ResultSet object and provides descriptions of table. It takes four string type arguments as given below:
String cat: This is a table catalog. It may be null value.
String sche: It shows schema of table. It may be null value.
String tab: This is a table name. It must require for getting the information.
String col_pat: It shows column name pattern.

COLUMN_NAME: Shows column name
TYPE_NAME: data types of column like: integer, varchar, char etc.
COLUMN_SIZE: Column size
NULLABLE: column can be null.

Here is the code of program:

import java.io.*;
import java.sql.*;

public class DiscriptionTable{
public static void main(String[] args) {
System.out.println("See Description of Table Example!");
Connection con = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbctutorial","root","root");
try{
Statement st = con.createStatement();
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter table name:");
String table = bf.readLine();
ResultSet rs = st.executeQuery("DESCRIBE "+table);
ResultSetMetaData md = rs.getMetaData();
int col = md.getColumnCount();
for (int i = 1; i <= col; i++){
String col_name = md.getColumnName(i);
System.out.print(col_name+"\t");
}
System.out.println();
DatabaseMetaData dbm = con.getMetaData();
ResultSet rs1 = dbm.getColumns(null,"%",table,"%");
while (rs1.next()){
String col_name = rs1.getString("COLUMN_NAME");
String data_type = rs1.getString("TYPE_NAME");
int data_size = rs1.getInt("COLUMN_SIZE");
int nullable = rs1.getInt("NULLABLE");
System.out.print(col_name+"\t"+data_type+"("+data_size+")"+"\t");
if(nullable == 1){
System.out.print("YES\t");
}
else{
System.out.print("NO\t");
}
System.out.println();
}
}
catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}

No comments:

Post a Comment