还用VFP啊。我也不太清楚VFP是不是一样的。看一下FAQ里边JDBC的帖子,有一个讲各种数据库的连接,不知道有没有讲。如果是和其他一样,好像不用拷,只要classpath对就行

解决方案 »

  1.   

    foxpro可以使用jdbc:odbc来进行连接;具体请参考数据库相关.
      

  2.   

    给个例子你参考一下.要把数据源名设为AddressBook.
    import java.sql.*; 
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import java.util.*; public class DisplayQueryResults extends JFrame {    //数据库变量定义
       private Connection connection; 
       private Statement statement; 
       private ResultSet resultSet; 
       private ResultSetMetaData rsMetaData;    //GUI变量定义
       private JTable table; 
       private JTextArea inputQuery; 
       private JButton submitQuery; 
        
       public DisplayQueryResults() 
       {  
          //Form的标题  
          super( "输入SQL语句,按提交按钮查看结果。" ); 
          //url中指定ODBC中设置的DSN名称
          String url = "jdbc:odbc:AddressBook"; 
          String username = ""; 
          String password = ""; 
          //加载驱动程序以连接数据库
          try { 
             Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); 
             connection = DriverManager.getConnection( 
                url, username, password ); 
          } 
          //捕获加载驱动程序异常
          catch ( ClassNotFoundException cnfex ) { 
             System.err.println( 
                "装载 JDBC/ODBC 驱动程序失败。" ); 
             cnfex.printStackTrace(); 
             System.exit( 1 );  // terminate program 
          } 
          //捕获连接数据库异常
          catch ( SQLException sqlex ) { 
             System.err.println( "无法连接数据库" ); 
             sqlex.printStackTrace(); 
             System.exit( 1 );  // terminate program 
          } 
          //如果数据库连接成功,则建立GUI
          //SQL语句
          String test="SELECT * FROM TblAddressBook"; 
          inputQuery = new JTextArea( test, 4, 30 ); 
          submitQuery = new JButton( "查询" ); 
          //Button事件
          submitQuery.addActionListener( 
             new ActionListener() { 
                public void actionPerformed( ActionEvent e ) 
                { 
                   getTable(); 
                } 
             }   
          );       JPanel topPanel = new JPanel(); 
          topPanel.setLayout( new BorderLayout() ); 
          //将"输入查询"编辑框布置到 "CENTER"
          topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER ); 
          //将"提交查询"按钮布置到 "SOUTH"
          topPanel.add( submitQuery, BorderLayout.SOUTH ); 
          table = new JTable(); 
          Container c = getContentPane(); 
          c.setLayout( new BorderLayout() ); 
          //将"topPanel"编辑框布置到 "NORTH"
          c.add( topPanel, BorderLayout.NORTH ); 
          //将"table"编辑框布置到 "CENTER"
          c.add( table, BorderLayout.CENTER );      
          getTable(); 
          setSize( 500, 300 ); 
          //显示Form
          show(); 
       }    private void getTable() 
       { 
          try { 
            //执行SQL语句
             String query = inputQuery.getText(); 
             statement = connection.createStatement(); 
             resultSet = statement.executeQuery( query );         
             //在表格中显示查询结果
             displayResultSet( resultSet ); 
          } 
          catch ( SQLException sqlex ) { 
             sqlex.printStackTrace(); 
          } 
       }    private void displayResultSet( ResultSet rs ) 
          throws SQLException 
       { 
          //定位到达第一条记录
          boolean moreRecords = rs.next();  
          //如果没有记录,则提示一条消息
          if ( ! moreRecords ) { 
             JOptionPane.showMessageDialog( this, 
                "结果集中无记录" ); 
             setTitle( "无记录显示" ); 
             return; 
          } 
          Vector columnHeads = new Vector(); 
          Vector rows = new Vector(); 
          try { 
             //获取字段的名称
             ResultSetMetaData rsmd = rs.getMetaData(); 
             for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
                columnHeads.addElement( rsmd.getColumnName( i ) ); 
             //获取记录集
             do { 
                rows.addElement( getNextRow( rs, rsmd ) ); 
             } while ( rs.next() ); 
             //在表格中显示查询结果
             table = new JTable( rows, columnHeads ); 
             JScrollPane scroller = new JScrollPane( table ); 
             Container c = getContentPane(); 
             c.remove(1); 
             c.add( scroller, BorderLayout.CENTER ); 
             //刷新Table
             c.validate(); 
          } 
          catch ( SQLException sqlex ) { 
             sqlex.printStackTrace(); 
          } 
       } 
       private Vector getNextRow( ResultSet rs, 
                                  ResultSetMetaData rsmd ) 
           throws SQLException 
       { 
          Vector currentRow = new Vector(); 
          for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
             currentRow.addElement( rs.getString( i ) ); 
          //返回一条记录   
          return currentRow; 
       }    public void shutDown() 
       { 
          try { 
            //断开数据库连接
             connection.close(); 
          } 
          catch ( SQLException sqlex ) { 
             System.err.println( "Unable to disconnect" ); 
             sqlex.printStackTrace(); 
          } 
       }    public static void main( String args[] ) 
       { 
          final DisplayQueryResults app = 
             new DisplayQueryResults(); 
          app.addWindowListener( 
             new WindowAdapter() { 
                public void windowClosing( WindowEvent e ) 
                {  
                   app.shutDown(); 
                   System.exit( 0 ); 
                } 
             } 
          ); 
       }