java - 数组在浏览器中给出 null 作为输出

标签 java mysql jsp

我测试过我的 Java 程序可以正确地从 MySQL 检索数据。然而,问题出在Java和JSP之间。 JSP页面无法从java程序中获取数据。

请大家帮帮我。

它给出的输出为空:

null
null
.
.
.
hai

我的jsp页面:

<%@ page import="com.zoo.MySQLAccess"%>
<html>
<head>
</head>
<body>
    <%
    MySQLAccess x= new MySQLAccess();
    String[] arr =x.getRows();
    out.print("1" +arr[0]);
    %>
    <% for(String str:arr) { %>
        <div style="height: 100px">
        <% out.print(str); %>
        </div>
    <% } %>
    <h1>hai</h1>
</body>
</html>

我的java页面是:

package com.zoo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.mysql.jdbc.Driver;

public class MySQLAccess {

    public String[] getRows() {
        String[] a = new String[100];
        try {
            // Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager
                    .getConnection("jdbc:mysql://localhost:3306/sankar?"
                            + "user=root&password=9788129325");
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement
                    .executeQuery("SELECT * FROM sankar.datas");

            int i = 0;

            while (resultSet.next()) {
                a[i] = resultSet.getString("name");
                i++;
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        return a;
    }
}

最佳答案

由于没有记录任何元素,您有两个问题之一。您没有连接到您的数据库,或者您没有正确查询您的表。

检查您是否可以使用命令行 mysql 客户端以 root 身份使用密码 9788129325 连接到本地主机上的“sankar”数据库,端口 3306。

如果可行,请在 mysql 中检查您在此 sankar 数据库中是否有一个“datas”表。你真的不需要“sankar.datas”。您可以只使用“从数据中选择 *”。

如果您可以查询该表,请确保它有一个“名称”列。

如果它有名称列,请确保此列中至少有 1 行。

如果只有一行,请确保该行的“名称”不为空。

如果是这种情况,那么您的错误可能是您错误地加载了驱动程序。首先,您希望拥有 mysql-connector-java-<some version>-bin.jar在你的应用程序的类路径中?也许在您的 webapp 的“lib”目录中?另外,我假设您注释掉的 Class.forName 是代码中的其他地方?如果没有,你需要那个。另外,您可以这样做:

Class.forName("com.mysql.jdbc.Driver").newInstance();

newInstance 是某些 Java 实现的“解决方法”。也许您需要它。

无论如何,在您的 Java 服务器上 的堆栈跟踪很可能会打印到控制台,并且应该让您更好地了解出了什么问题。

关于java - 数组在浏览器中给出 null 作为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19638495/

相关文章:

java - 如何使用 XMLStreamReader 读取 xml 中的 namespace ?

java - 解释琐事 : How many live collections are in a typical heap?

java - struts2中通过GET或POST控制action的方法

java - Maven 3、Tomcat 8部署

java - 使用 Apache Tika 在 solr 中提取 PDF 文件的内容

c# - Datagridview 选择我通过数据库插入的最后一个插入行

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

php - 是否可以将当前登录用户的 ID 与 php 表单一起添加?

jquery - 如何根据在 jquery 中另一个下拉列表中的特定项目的选择显示下拉列表?

jsp - 无法读取 JSP EL 中的 bool 属性