Saturday, 21 January 2017

MORE ON RESULTSETMETADATA

PROGRAM TO READ DATA FROM ANY TABLE

package Package1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Scanner;
public class Test29 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "rakesh");
Scanner scan = new Scanner(System.in);
System.out.println("Input query");
String query=scan.nextLine();
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int c=rsmd.getColumnCount();
while(rs.next())
{
for(int i=1;i<=c;i++)
{
String type=rsmd.getColumnTypeName(i);
if(type.equals("NUMBER"))
System.out.print(rs.getInt(i)+" ");
if(type.equals("VARCHAR2"))
System.out.print(rs.getString(i)+" ");
if(type.equals("DATE"))
System.out.println(rs.getDate(i)+" ");
}
System.out.println();
}
}

}

Output -
Input query
select empno,ename,sal,hiredate from emp
7369 SMITH 1300 1980-12-17 

7499 ALLEN 1800 1981-02-20 

7521 WARD 1450 1981-02-22 

7566 JONES 3375 1981-04-02 

7654 MARTIN 1450 1981-09-28 

7698 BLAKE 3050 1981-05-01 

7782 CLARK 2650 1981-06-09 

7788 SCOTT 3400 1987-04-19 

7839 KING 5200 1981-11-17 

7844 TURNER 1700 1981-09-08 

7876 ADAMS 1500 1987-05-23 

7900 JAMES 1150 1981-12-03 

7902 FORD 3400 1981-12-03 

7934 MILLER 1500 1982-01-23 

No comments:

Post a Comment