我有一个小程序,当我在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,我需要以某种方式添加它吗?
答案 0 :(得分:1)
也许从浏览器中,java代码无法连接到数据库。
您必须更改应用程序结构,并将applet部分与服务器部分分开。将所有用户界面逻辑放入applet部分,然后通过RMI或Web Service连接到服务器部分,发送数据,并在服务器端连接到数据库。
如果您的客户端能够连接到数据库,则另一个点事件,如果您使用连接URL jdbc:mysql://localhost/wps
发布applet,则每个客户端将尝试连接到运行applet的同一台计算机上的数据库。也就是说,如果您有10个客户端,则每次尝试都会自行搜索数据库,因为您使用的是localhost
。
但是,我建议您在上面描述的两部分中分离您的申请登录。