我试图使用java和jsp中的一些类从Mysql中的数据库打印一些数据。这是我第一次这么做。我搜了很多东西,但没有任何帮助。这是我的代码:
index.html索引

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
    <form action="DB_results.jsp">
        <input type = "submit" value = "Database">
    </form>
</body>
</html>

绘图.java
package DB_draw;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Draw {
    ResultSet myRs;

    public ResultSet getMyRs() {
        return myRs;
    }

    public void setMyRs() {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tst","root","");

            Statement myStmt = myConn.createStatement();

            this.myRs = myStmt.executeQuery("select * from tst.people");

            while (this.myRs.next())
            {
                System.out.println(this.myRs.getString("onoma") + " " + this.myRs.getString("epitheto") + " " + this.myRs.getInt("id"));
            }
        }

        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

数据库结果.jsp
<%@page import="java.sql.ResultSet"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ page import="DB_draw.*" %>

<jsp:useBean id="DB_draw" class="DB_draw.Draw" scope="session" />
<jsp:setProperty name="DB_draw" property="*"/>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Database</title>
</head>
<body style="background-color:black">
<div style = "color:yellow; font-family:fantasy; font-size:30px">
     <%
        ResultSet myRs = DB_draw.getMyRs();
        if(myRs == null) out.println("Problem");
        else
            while(myRs.next())
            {
                out.println(myRs.getString("onoma") + " " + myRs.getString("epitheto") + " " + myRs.getInt("id"));
            }
     %>
</div>
</body>
</html>

问题是,当我尝试使用变量myRs在DB_results.jsp中打印结果时,myRs==NULL。为什么会这样?我正在使用Tomcat Apache 8.0。

最佳答案

你从不打电话给setMyRS()。即使这样,setMyRS()也会遍历resultset,因此myRs.next()在JSP中总是返回false。

09-25 16:31
查看更多