利用JDBC获取表信息和字段信息

来源:互联网 发布:picasa3 for mac 编辑:程序博客网 时间:2024/06/05 17:18

最近在做基于J2EE的异构数据库的迁移,以javabean为中介来存储表信息,为应对不同以及多种数据库的迁移,则需利用JDBC得到所有的表信息和字段信息,动态构建JavaBean。这里给出如何利用JDBC获取表信息和字段信息。

package com.hdu.edu.test;/* * 尝试获取表名和字段名,以便动态建立javabean */import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.PreparedStatement;import java.sql.ResultSet;public class TestGetTable {public static void main(String args[]){String DriverClass="oracle.jdbc.driver.OracleDriver";String DatabaseUrl="jdbc:oracle:thin:@localhost:1521:orcl";//orcl服务名或SIDString DatabaseUser="scott";String DatabasePassword="Ckm123";Connection con=null;PreparedStatement psta=null;ResultSet res=null;String columnName;String columnType;try{con=SourceDatabase.getConnection(DriverClass, DatabaseUrl, DatabaseUser, DatabasePassword);DatabaseMetaData dm=con.getMetaData();ResultSet tableSet=dm.getTables(con.getCatalog(), "SCOTT", null, new String[]{"TABLE"});//while(tableSet.next()) {//循环输出数据库中的表名    System.out.println(tableSet.getString("TABLE_NAME"));}ResultSet colRet =dm.getColumns(con.getCatalog(), "SCOTT", "EMP", null);while(colRet.next()) {//循环输出EMP表的列名以及其他信息columnName = colRet.getString("COLUMN_NAME");columnType = colRet.getString("TYPE_NAME");int datasize = colRet.getInt("COLUMN_SIZE");int digits = colRet.getInt("DECIMAL_DIGITS");int nullable = colRet.getInt("NULLABLE");  System.out.println(columnName+" "+columnType+" "+datasize+" "+digits+" "+nullable);}}catch(Exception e){e.printStackTrace();}finally{try{if(res!=null)res.close();if(psta!=null)psta.close();if(con!=null)con.close();}catch(Exception e){e.printStackTrace();}}}}



0 0
原创粉丝点击