|  
 import java.math.BigDecimal;
 import java.sql.Connection;
 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) throws Exception {
 String driver = "oracle.jdbc.driver.OracleDriver";
 Class.forName(driver).newInstance();
 
 String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
 Connection conn = DriverManager.getConnection(jdbcUrl, "yourName", "mypwd");
 
 Statement stmt = conn.createStatement();
 ResultSet rs = stmt.executeQuery("SELECT * FROM Employees");
 
 printColumnInfo(rs);
 
 printColumnNames(rs);
 processRs(rs);
 
 rs = stmt.executeQuery("SELECT * FROM Location");
 printColumnInfo(rs);
 
 printColumnNames(rs);
 processRs(rs);
 conn.close();
 }
 
 public static void processRs(ResultSet rs) throws SQLException {
 ResultSetMetaData rmd = rs.getMetaData();
 while (rs.next()) {
 for (int col = 1; col <= rmd.getColumnCount(); col++)
 getData(rs, rmd.getColumnType(col), col);
 }
 }
 
 public static void printColumnNames(ResultSet rs) throws SQLException {
 ResultSetMetaData rmd = rs.getMetaData();
 for (int col = 1; col <= rmd.getColumnCount(); col++)
 System.out.println(rmd.getColumnName(col) + " ");
 }
 
 public static void getData(ResultSet rs, int type, int colIdx) throws SQLException {
 switch (type) {
 case java.sql.Types.CHAR:
 case java.sql.Types.VARCHAR:
 System.out.println(rs.getString(colIdx));
 break;
 
 case java.sql.Types.INTEGER:
 int i = rs.getInt(colIdx);
 System.out.println(i);
 break;
 
 case java.sql.Types.NUMERIC:
 BigDecimal bd = rs.getBigDecimal(colIdx);
 System.out.println(bd.toString());
 break;
 
 case java.sql.Types.TIMESTAMP:
 case java.sql.Types.DATE:
 java.sql.Date d = rs.getDate(colIdx);
 System.out.println(d.toString());
 break;
 
 }
 }
 
 public static void printColumnInfo(ResultSet rs) throws SQLException {
 ResultSetMetaData rsmd = rs.getMetaData();
 int cols = rsmd.getColumnCount();
 for (int colIdx = 1; colIdx <= cols; colIdx++) {
 String name = rsmd.getColumnName(colIdx);
 int type = rsmd.getColumnType(colIdx);
 String typeName = rsmd.getColumnTypeName(colIdx);
 System.out.println(name + ", " + type + ", " + typeName);
 }
 }
 }
 
 
 
 |