This question already has an answer here:
JDBC Connection: Access Denied for User even All Previlleges are Granted [closed]
(1个答案)
6年前关闭。
我的自签名小程序可以在小程序查看器和本地Web浏览器上完美运行。但是,当我根据网站服务器上mysql数据库的数据库名称,用户名和密码更改连接字符串,并通过ftp将项目上载到服务器时,小程序无法连接到数据库。小程序代码为:
}
(1个答案)
6年前关闭。
我的自签名小程序可以在小程序查看器和本地Web浏览器上完美运行。但是,当我根据网站服务器上mysql数据库的数据库名称,用户名和密码更改连接字符串,并通过ftp将项目上载到服务器时,小程序无法连接到数据库。小程序代码为:
public void init() {
JPanel panel = new JPanel();
panel.add( new JLabel("Start"));
revalidate();
// TODO start asynchronous download of heavy resources
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://www.mywebiste.com:3306/database";
String user = "user";
String password = "password";
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url,user,password);
String sql4 = "Select * from form where Il='Ankara'";
//System.out.println(password + " " + userName);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql4);
panel.add( new JLabel("Connection"));
revalidate();
}
catch(Exception e) {
panel.add( new JLabel("Not Connected"));
revalidate();
}
Container content = getContentPane();
content.setLayout(new GridBagLayout());
content.add(panel);
}
最佳答案
您是同源政策的受害者。
可以通过在applet上签名来解决此问题,但我强烈建议您不要打扰。由于Java中最近涉及Applets和JNLP的所有安全问题,因此该技术与dodo一样死了。越来越多的系统默认禁用Java小程序,并且越来越多的用户自己(或其IT部门)禁用了此功能。
最好在服务器上的Web应用程序中使用一些轻量级的REST服务,并在浏览器上使用一些javascript(如果您真的坚持要使用applet),该服务会通过http使用这些服务。然后,您也无需将数据库公开到网络。
即使对于内部应用程序,我也会认真考虑一下(或将其回推给任何提出要求的人)。
关于java - 客户端计算机上的Applet JDBC连接失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17675412/
10-12 19:42