Applet SQL INSERT无法在浏览器中运行

时间:2012-04-10 06:22:04

标签: java sql eclipse applet

我有一个小程序,当我在Eclipse中运行测试时工作完美但当我进入浏览器时它似乎不起作用。

我已经读过applet不再使用了很多但我仍然想要了解它们的原因有各种各样的原因。

这是我的代码。就像我说的那样,它在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;
}

}

我需要设置一些额外的浏览器设置吗?也。我正在导入JDBC所以我可以使用sql,我需要以某种方式添加它吗?

1 个答案:

答案 0 :(得分:1)

也许从浏览器中,java代码无法连接到数据库。

您必须更改应用程序结构,并将applet部分与服务器部分分开。将所有用户界面逻辑放入applet部分,然后通过RMI或Web Service连接到服务器部分,发送数据,并在服务器端连接到数据库。

如果您的客户端能够连接到数据库,则另一个点事件,如果您使用连接URL jdbc:mysql://localhost/wps发布applet,则每个客户端将尝试连接到运行applet的同一台计算机上的数据库。也就是说,如果您有10个客户端,则每次尝试都会自行搜索数据库,因为您使用的是localhost

但是,我建议您在上面描述的两部分中分离您的申请登录。