Java 小程序在浏览器中运行时未从MySQL数据库读取数据

Java 小程序在浏览器中运行时未从MySQL数据库读取数据,java,sql,database,applet,Java,Sql,Database,Applet,我创建了一个JavaApplet类,它从数据库中读取数据,然后在applet中显示。程序运行正常,当我从EclipseIDE运行它时,我会获取数据,但当我使用html代码从浏览器运行它时,它会运行,但不会从数据库获取数据。这是我使用的代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import ja

我创建了一个JavaApplet类,它从数据库中读取数据,然后在applet中显示。程序运行正常,当我从EclipseIDE运行它时,我会获取数据,但当我使用html代码从浏览器运行它时,它会运行,但不会从数据库获取数据。这是我使用的代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;


public class Driver extends JApplet {
  private Connection connect = null;
  private Statement statement = null;
  private PreparedStatement preparedStatement = null;
  private ResultSet resultSet = null;
  private JLabel lbl = null;
  private String label;

  public void init() {
      try {

          try {
              // this will load the MySQL driver, each DB has its own driver
              Class.forName("com.mysql.jdbc.Driver");

              // setup the connection with the DB.
              connect = DriverManager
                  .getConnection("jdbc:mysql://localhost/jdbc?"
                      + "user=root&password=");

              // statements allow to issue SQL queries to the database
              statement = connect.createStatement();
              // resultSet gets the result of the SQL query
              resultSet = statement
                  .executeQuery("select * from jdbc.info");
             // writeResultSet(resultSet);
              while (resultSet.next()) {
                  String user = resultSet.getString("id");
                  String name = resultSet.getString("name");
                  label = user +" "+ name;
                }     
            } catch (Exception e) {
              throw e;
            } finally {
             // close();
            }

          SwingUtilities.invokeAndWait(new Runnable() {
              public void run() {
                  lbl = new JLabel(label);
                  add(lbl);
              }
          });


      } catch (Exception e) {
          System.err.println("createGUI didn't complete successfully");
      }
  }

  public static void main(String[] args) throws Exception {
        Driver dao = new Driver();
        dao.init();
  }


} 
这是HTML代码


我的第一个应用程序正在从db重新启动
我的第一个应用程序从db重新启动

有人能帮我找到小程序为什么不从本地wamp服务器上的数据库中读取数据吗。它们是我必须添加.Class才能运行的特定目录吗?

想象有人在example.org上部署了一个小程序。从浏览器中,您可以访问example.org并执行代码(localhost现在实际上是您的机器,因为代码是在您计算机上的JVM中执行的)。因为您不是很谨慎,所以没有设置本地数据库的密码。在example.org上部署恶意applet的人现在可以从您的数据库中读取数据,并以他想要的方式使用它


为了能够从小程序访问数据库,您应该在服务器机器上运行一些服务器代码,这些代码将通过某种网络协议(RMI、套接字等)为您提供数据。

您会遇到什么错误?连接字符串中的localhost不正确,它应该是数据库服务器的IP地址或域名,localhost将指向客户端计算机,这肯定不是db服务器。这是一种特殊情况,如果有人在服务器上浏览小程序(实际坐着),它没有给出任何错误,只是不显示数据。我只是试图更改它并添加了我的服务器IP,但它仍然不起作用就在
抛出e的下方并打开Java控制台(我想是从控制面板),然后再启动@Yazan提到的appletAs。。确保已将配置为显示。如果默认级别没有输出,请提高该级别,然后重试。@Yazan不确定对数据库进行外部访问是否是一个好主意,我希望使用一些非常简单的服务,可以配置为提供一些基本的安全性。您能指出一些我可以使用的参考或示例吗