Using a ResultSetMetaData Object to Get Information About a ResultSet - Java JDBC

Java examples for JDBC:ResultSet Meta Data

Description

Using a ResultSetMetaData Object to Get Information About a ResultSet

Demo Code

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) {
    Connection conn = null;/* w  w  w  .  j av a 2  s. c  o m*/
    try {
      conn = JDBCUtil.getConnection();
      String SQL = "select person_id as \"Person ID\", "
          + "first_name as \"First Name\", " + "gender as Gender, "
          + "dob as \"Birth Date\", " + "income as Income " + "from person";

      // Print the reSult set matadata
      printMetaData(conn, SQL);
      JDBCUtil.commit(conn);
    } catch (SQLException e) {
      System.out.println(e.getMessage());
      JDBCUtil.rollback(conn);
    } finally {
      JDBCUtil.closeConnection(conn);
    }
  }

  public static void printMetaData(Connection conn, String SQL)
      throws SQLException {
    Statement stmt = conn.createStatement();
    try {
      ResultSet rs = stmt.executeQuery(SQL);
      ResultSetMetaData rsmd = rs.getMetaData();
      int columnCount = rsmd.getColumnCount();
      System.out.println("Column Count:" + columnCount);

      for (int i = 1; i <= columnCount; i++) {
        System.out.println("Index:" + i + ", Name:" + rsmd.getColumnName(i)
            + ", Label:" + rsmd.getColumnLabel(i) + ", Type Name:"
            + rsmd.getColumnTypeName(i) + ", Class Name:"
            + rsmd.getColumnClassName(i));
      }
    } finally {
      JDBCUtil.closeStatement(stmt);
    }
  }
}

class JDBCUtil {
  public static Connection getConnection() throws SQLException {
    // Register the Java DB embedded JDBC driver
    Driver derbyEmbeddedDriver = null;// new
                                      // org.apache.derby.jdbc.EmbeddedDriver();
    DriverManager.registerDriver(derbyEmbeddedDriver);

    String dbURL = "jdbc:derby:beginningJavaDB;create=true;";
    String userId = "root";
    String password = "password";

    Connection conn = DriverManager.getConnection(dbURL, userId, password);
    conn.setAutoCommit(false);
    return conn;
  }

  public static void closeConnection(Connection conn) {
    try {
      if (conn != null) {
        conn.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void closeStatement(Statement stmt) {
    try {
      if (stmt != null) {
        stmt.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void closeResultSet(ResultSet rs) {
    try {
      if (rs != null) {
        rs.close();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void commit(Connection conn) {
    try {
      if (conn != null) {
        conn.commit();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void rollback(Connection conn) {
    try {
      if (conn != null) {
        conn.rollback();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    Connection conn = null;
    try {
      conn = getConnection();
      System.out.println("Connetced to the database.");
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      closeConnection(conn);
    }
  }
}

Related Tutorials