代码如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; public class DBMetaDataTest { public static void main(String[] args) throws SQLException { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@host:9999:SERVICENAME"; String uname = "test"; String pssw = "test"; Connection cn = DriverManager.getConnection(url,uname,pssw); PreparedStatement ps = cn.prepareStatement("select * from Test_Table where ROWNUM = ?"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); //获取当前表共有多少列 int tableLength = rsmd.getColumnCount(); System.out.println("The column number of table is: " + tableLength); for(int i=1 ;i<tableLength ;i++){ //获取数据库类型 String rolumnDbClass = rsmd.getColumnTypeName(i); System.out.println("数据库设置的列类型:"+rolumnDbClass); //获取数据库类型与java相对于的类型 String rolumnClass = rsmd.getColumnClassName(i); System.out.println("java对应:"+rolumnClass); //获取列名 String columnName = rsmd.getColumnName(i); System.out.println("获取列名:"+columnName); } rs.close(); ps.close(); cn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { } } }