把sun.jdbc.odbc放入环境变量classpath中

解决方案 »

  1.   

    楼上的,这个没问题。
    环境变量没问题。不用Applet,将Applet程序改用一般程序的执行方式是没有问题,
    这说明环境变量设置是正确的。
      

  2.   

    appletviwer OutputApplet.html,把次文件内容贴出来
      

  3.   

    以下是OutputApplet.java的代码
    /*
     * Copyright 2003 Sun Microsystems, Inc.  ALL RIGHTS RESERVED.
     * Use of this software is authorized pursuant to the terms of the license found at
     * http://developer.java.sun.com/berkeley_license.html.
     */ /**
     * This is a demonstration JDBC applet.
     * It displays some simple standard output from the Coffee database.
     */import java.applet.Applet;
    import java.awt.Graphics;
    import java.util.Vector;
    import java.sql.*;public class OutputApplet extends Applet implements Runnable {
        private Thread worker;
        private Vector queryResults;
        private String message = "Initializing";    public synchronized void start() {
    // Every time "start" is called we create a worker thread to
    // re-evaluate the database query.
    if (worker == null) {
        message = "Connecting to database";
                worker = new Thread(this);
        worker.start();
    }
        }    /**
         * The "run" method is called from the worker thread.  Notice that
         * because this method is doing potentially slow databases accesses
         * we avoid making it a synchronized method.
         */    public void run() {
    // String url = "jdbc:mySubprotocol:myDataSource";
        String url = "jdbc:odbc:server1";
         String query = "select COF_NAME, PRICE from COFFEES";

    try {
        //Class.forName("myDriver.ClassName");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch(Exception ex) {
        setError("Can't find Database driver class: " + ex);
        return;
    } try {
        Vector results = new Vector();
        Connection con = DriverManager.getConnection(url,
    "sa", "");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while (rs.next()) {
    String s = rs.getString("COF_NAME");
    float f = rs.getFloat("PRICE");
    String text = s + "     " + f;
    results.addElement(text);
        }     stmt.close();
        con.close();     setResults(results); } catch(SQLException ex) {
        setError("SQLException: " + ex);
    }
        }    /**
         * The "paint" method is called by AWT when it wants us to
         * display our current state on the screen.
         */    public synchronized void paint(Graphics g) {
    // If there are no results available, display the current message.
    if (queryResults == null) {
        g.drawString(message, 5, 50);
        return;
    } // Display the results.
    g.drawString("Prices of coffee per pound:  ", 5, 10);
    int y = 30;
    java.util.Enumeration enum = queryResults.elements();
    while (enum.hasMoreElements()) {
        String text = (String)enum.nextElement();
        g.drawString(text, 5, y);
        y = y + 15;
    }
        }    /**
         * This private method is used to record an error message for
         * later display.
         */    private synchronized void setError(String mess) {
    queryResults = null;
    message = mess;
    worker = null;
    // And ask AWT to repaint this applet.
    repaint();
        }    /**
         * This private method is used to record the results of a query, for
         * later display.
         */    private synchronized void setResults(Vector results) {
    queryResults = results;
    worker = null;
    // And ask AWT to repaint this applet.
    repaint();
        }
    }