我测试了我的 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 连接到本地主机端口 3306 上的“sankar”数据库。
如果有效,请检查 mysql 是否在此 sankar 数据库中有一个“datas”表。你真的不需要有“sankar.datas”。您只需“从数据中选择*”即可。
如果您可以查询该表,请确保它具有“名称”列。
如果它有名称列,请确保此列中至少有 1 行。
如果它有一行,请确保该行的“名称”不为空。
如果是这种情况,那么您的错误可能是您错误地加载了驱动程序。首先,您希望拥有mysql-connector-java-<some version>-bin.jar
在你的应用程序的类路径中?也许在你的网络应用程序的“lib”目录中?另外,我假设您注释掉的 Class.forName 位于代码中的其他位置?如果没有,你需要那个。另外,你可以这样做:
Class.forName("com.mysql.jdbc.Driver").newInstance();
newInstance 是某些 Java 实现的“解决方法”。也许你需要那个。
无论如何,再次查看堆栈跟踪在您的 Java 服务器上可能会打印到控制台,并且应该让您更好地了解出了什么问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)