1

我目前正在尝试联系 MySQL 服务器。我的目标是有一个 servlet 在运行时显示一些表数据。我的 servelt 在glassfish 3.1上运行。

这是简单的doGet方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PrintWriter out = response.getWriter(); 
    out.print("<h1>select * from userName:<h1>");

    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/people", "root", "r00tpw");
        System.out.println("Connected");

        PreparedStatement statement = (PreparedStatement) conn.prepareStatement("select * from userName");
        ResultSet result = statement.executeQuery();

        while(result.next()) {
            out.print(result.getString(0));
        }

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

我有正确的 JDBC 驱动程序。我遇到的问题是我的源代码找到它。我尝试右键单击JRE System Library->Build Path->Configure Build Path并添加一个外部 JAR。与其将 JAR 添加到引用库,不如将它添加到任何库范围之外。这意味着Class.forName("com.mysql.jdbc.Driver");总是抛出 ClassNotFoundException。

我还尝试将 JAR 添加到[pcname]->Classpath->User Entries的 Run Configurations->Glassfish 3.1 中,但没有成功。

我也尝试过使用 MS SQL Server 和他们的 JDBC 驱动程序。同样的事情也会发生。

我附上了我的项目结构的图像以提供帮助。

包含在 claspath 中后我的项目浏览器的样子

4

3 回答 3

1

将 mysql-connector-java-5.1.26 放到您的 WebContent--->WEB-INF-->lib .inside lib 文件夹中。

于 2013-09-15T09:23:26.610 回答
0

首先,安装 jdbc 驱动程序后,您需要在 glassfish 中对其进行配置。创建 JDBC 资源和 JDBC 连接池。

PS 您是否将 jdbc JAR 添加到 glassfish 服务器文件夹?

对于 glassfish,请查看您的连接器,它必须位于 \Glassfish3\domains\domain1\lib\databases

于 2013-09-15T09:22:07.257 回答
0

可能是您没有将 mysql 驱动程序添加到服务器文件夹。glassfish-resources.xml因此,您是否在 Glassfish 管理控制台中检查了您的或 JDBC 连接?

于 2013-09-15T09:39:41.887 回答