jdbc-odbc 桥!
先建ODBC DSN!//文件名: MyJDBC.java 
//import java.sql.*; 
//package com.borland.datastore; 
//package com.borland.datastore.jdbc; 
//import com.borland.datastore.*; 
public class MyJDBC 

public static void main(String[] args) throws java.sql.SQLException 
 { 
   try 
      { 
       java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
       } 
   catch (java.lang.ClassNotFoundException e1) 
      { 
       System.err.print("ClassNotFoundException: "); 
       System.err.println(e1.getMessage()); 
      } 
   int i=0; 
   String catalogX; 
   String schemaPatternX; 
   String tableNamePatternX; 
   String[] typesX = {"Table"}; 
   try 
      { 
       java.sql.Connection ConnectionX = java.sql.DriverManager.getConnection("jdbc:ODBC:DSNNorthwind","sa", ""); 
       java.sql.DatabaseMetaData DatabaseMetaDataX =ConnectionX.getMetaData(); 
       java.sql.ResultSet ResultSetX; 
       ResultSetX = DatabaseMetaDataX.getTables("","","",typesX); 
       while (ResultSetX.next()) 
             { 
              System.out.println("(" + (++i) + "). " + ResultSetX.getString("TABLE_NAME")); 
             } 
       java.sql.Statement StatementX = ConnectionX.createStatement(); 
       ResultSetX = StatementX.executeQuery("select * from products"); 
       java.sql.ResultSetMetaData  ResultSetMetaDataX = ResultSetX.getMetaData(); 
       System.out.println(ResultSetMetaDataX.getColumnCount()); 
       String s=""; 
       for (i=0; i< ResultSetMetaDataX.getColumnCount();i++ ) 
           { 
            s = s + "[" + ResultSetMetaDataX.getColumnName(i+1) +"](" + ResultSetMetaDataX.getColumnTypeName(i+1) + " : " + ResultSetMetaDataX.getColumnType(i+1) + ")"; 
            if (i< ResultSetMetaDataX.getColumnCount()-1) 
               { 
                s=s+","; 
               } 
           }; 
           System.out.println (s + '\n'); 
           while (ResultSetX.next()) 
                 { 
                  s=""; 
                 for (i=0; i< ResultSetMetaDataX.getColumnCount();i++ ) 
                     { 
                      switch (ResultSetMetaDataX.getColumnType(i+1)) 
                             { 
                              case 4: 
                                     s = s + ResultSetX.getInt(i+1); 
                                     break; 
                              default: 
                                      s = s + ResultSetX.getString(i+1); 
                                      break; 
                              case 5: 
                                      s = s + ResultSetX.getDouble(i+1); 
                                      break; 
                              case -7: 
                                      s = s + ResultSetX.getBoolean(i+1); 
                                      break; 
                             } 
                      if (i< ResultSetMetaDataX.getColumnCount()-1) 
                         s=s+","; 
                     }; 
                    System.out.println (s ); 
               } 
      } 
   catch (java.sql.BatchUpdateException e2) 
      {} 
 } 
}