代码如下:
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 {
}
}
}