ResultSet Metadata from Oracle Driver : ResultSetMetaData « Database SQL JDBC « Java






ResultSet Metadata from Oracle Driver

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; publicclass RSMetaData { publicstaticvoid 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(); } publicstaticvoid 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); } } publicstaticvoid printColumnNames(ResultSet rs) throws SQLException { ResultSetMetaData rmd = rs.getMetaData(); for (int col = 1; col <= rmd.getColumnCount(); col++) System.out.println(rmd.getColumnName(col) + " "); } publicstaticvoid 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; } } publicstaticvoid 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); } } } 








Related examples in the same category

1.Create Custom RowSet MetaData
2.Get ResultSet Metadata
3.Get Table Schema Name From ResultSet Metadata
4.Get Table Name From ResultSet Metadata
5.Getting the Column Names in a Result Set
close