0

Eclipseでテスト実行すると完全に機能するアプレットがありますが、ブラウザに移動すると機能しないようです。

アプレットはもうあまり使用されていないことをすでに読みましたが、さまざまな理由でアプレットについて学びたいと思っています。

これが私のコードです。私が言ったように、Eclipseで実行すると意図したとおりに機能します。

public class WPStool extends Applet implements ActionListener
{
 /**
     * 
     */
 private static final long serialVersionUID = 6920052961843268403L;
 Label lblCustNum, lblCustName, lblAccount, lblEmpID, lblSuccess;
 TextField txtCustNum, txtCustName, txtAccount, txtEmpID;
 Button bEnter;
 boolean blnCorrect;

 public void init()
 {
     lblCustNum = new Label("Customer #");
  add(lblCustNum);

  txtCustNum = new TextField(20);
  add(txtCustNum);

  lblCustName = new Label("Customer Name");
  add(lblCustName);

  txtCustName = new TextField(20);
  add(txtCustName);

  lblAccount = new Label("Account Type");
  add(lblAccount);

  txtAccount = new TextField(20);
  add(txtAccount);

  lblEmpID = new Label("EmployeeID");
  add(lblEmpID);

  txtEmpID = new TextField(20);
  add(txtEmpID);

  bEnter = new Button("Enter");
  add(bEnter);
  bEnter.addActionListener(this);
 }

 public void actionPerformed(ActionEvent e)
 {

  if (e.getSource() == bEnter)
    {
        //registerUser();
        int custNum = Integer.parseInt(txtCustNum.getText());
        int empID = Integer.parseInt(txtEmpID.getText());
        enterInfo(custNum, txtCustName.getText(), txtAccount.getText(), empID);
        txtCustNum.setText("");
        txtCustName.setText("");
        txtAccount.setText("");
        txtEmpID.setText("");
    }
 }



public void enterInfo(int custNuma, String custNamea, String accounta, int empIDa)
{
    Connection con = getConnection();
    try
    {
        Statement s = con.createStatement();
        String select = "INSERT INTO  customerInfo (custNum , custName, account ,empID) VALUES ("+ custNuma +",  '"+ custNamea +"',  '"+ accounta +"',  "+ empIDa +")";
        //String select = "INSERT INTO  customerInfo (custNum , custName, account ,empID) VALUES (123,  'Jim John Joe',  'New Account', 1234)";
        s.executeUpdate(select);
        lblSuccess = new Label("Success!");
        add(lblSuccess);

    }
    catch (SQLException e)
    {
        System.out.println("getClasses method: " + e.getMessage());
        lblSuccess = new Label("FAIL!");
        add(lblSuccess);
    }
}

private Connection getConnection()
{
    Connection con = null;
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost/wps";
        String user = "root";
        String pw = "";
        con = DriverManager.getConnection(url, user, pw);
    }
    catch (ClassNotFoundException e)
    {
        System.out.println("getConnection ClassNotFound: " + e.getMessage());
        System.exit(0);
    }
    catch (SQLException e)
    {
        System.out.println("getConnection SQL: " + e.getMessage());
        System.exit(0);
    }
    return con;
}

}

セットアップする必要のある追加のブラウザ設定はありますか?また。sqlを使用できるようにJDBCをインポートしていますが、これを何らかの方法で追加する必要がありますか?

4

1 に答える 1

1

おそらくブラウザから、Javaコードはデータベースに接続できません。

アプリケーションの構造を変更し、アプレットの部分をサーバーの部分から分離する必要があります。アプレット部分にすべてのユーザーインターフェイスロジックを配置し、RMIまたはWebサービスを介してサーバー部分に接続し、データを送信し、サーバー側でデータベースに接続します。

クライアントがデータベースに接続できる場合の別のポイントイベント。接続URLを使用してアプレットを解放するとjdbc:mysql://localhost/wps、すべてのクライアントがアプレットを実行している同じマシン上のデータベースに接続しようとします。つまり、クライアントが10個ある場合は、を使用するため、試行するたびにデータベースが検索されますlocalhost

ただし、アプリケーションのログインを上記の2つの部分に分けることをお勧めします。

于 2012-04-10T06:24:29.460 に答える