gpt4 book ai didi

mysql - Jsp只显示我的mySQL表的标题而不是它们的内容

转载 作者:行者123 更新时间:2023-11-29 15:40:41 25 4
gpt4 key购买 nike

我正在尝试使用 JSP、MySQL、Servlet 和 DAO 在数据库和网站之间建立连接。连接已建立,但仅显示表的标题,而未显示数据。使用 IntelliJ Idea 作为 IDE。

连接已建立,但仅显示标题,数据似乎未传输,因为所有值都被默认值替换。

这是对象 Filme,其他属性确实有 getter 和 setter,但也试图缩短。

package Filme;

public class Film {
private int idFilme;
private String Titel;
private int Laenge;
private int Erscheinungsjahr;
private String Hauptdarsteller;
private String Produzent;
private String Studio;
private String Regiesseur;
private String Produktionsland;
private String Cover;
private String Trailer;

public int getIdFilme() {
return idFilme;
}

void setIdFilme(int idFilme) {
this.idFilme = idFilme;
}

public String getTitel() {
return Titel;
}

void setTitel(String titel) {
Titel = titel;
}



public int getErscheinungsjahr() {
return Erscheinungsjahr;
}

void setErscheinungsjahr(int erscheinungsjahr) {
Erscheinungsjahr = erscheinungsjahr;
}


@Override
public String toString() {
return "Film{" +
"idFilme=" + idFilme +
", Titel='" + Titel +
", Laenge=" + Laenge +
", Erscheinungsjahr=" + Erscheinungsjahr +
", Hauptdarsteller='" + Hauptdarsteller +
", Produzent='" + Produzent +
", Studio='" + Studio +
", Regiesseur='" + Regiesseur +
", Produktionsland='" + Produktionsland +
", Cover='" + Cover +
", Trailer='" + Trailer +
'}';
}

这是 Film 对象的 Dao,它建立连接并检索数据。由于某种原因,IDE 认为 Filme.Film 的导入未被使用,即使我稍后使用该类的属性也是如此。

package Filme;

import Filme.Film;
import java.sql.*;

public class FilmDao {
public Film getFilm(int idFilme)
{
Film a = new Film ();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/filme","root", "root" );
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from filme.filme where idFilme=" + idFilme);
if (rs.next())
{
a.setIdFilme(rs.getInt("idFilme"));
a.setTitel(rs.getString("Titel"));
a.setErscheinungsjahr(rs.getInt("Erscheinungsjahr"));
}
}
catch (Exception e){System.out.println(e);}

return a;
}
}

这是 Servlet。同样的事情,这里的 Film 和 FilmDao 导入显然没有被使用。

package Filme;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import Filme.Film;
import Filme.FilmDao;

public class getFilme extends HttpServlet {
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

int idFilme = Integer.parseInt(request.getParameter("idFilme"));
FilmDao dao=new FilmDao();
Film a1 = dao.getFilm(idFilme);

request.setAttribute("Film", a1);

RequestDispatcher rd = request.getRequestDispatcher("Film_fein.jsp");
rd.forward(request, response);
}
}

捕获要显示的Film ID的页面。 Film_grob.jsp

<%@ page import="Filme.Film" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FML</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<%
Film a1 = (Film)request.getAttribute("Film");

out.println(a1);
%>
</body>
</html>

应显示数据的页面 (Film_fein.jsp)

<%@ page import="Filme.Film" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FML</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<%
Film a1 = (Film)request.getAttribute("Film");

out.println(a1);
%>
</body>
</html>

我希望输出是表标题和表数据,但只显示标题和默认值。预先感谢您能给我的任何帮助。

最佳答案

很明显,我使用了错误的驱动程序并将其存储在错误的位置,但代码工作正常。

请务必像聪明人一样通过 Maven 添加驱动程序。

关于mysql - Jsp只显示我的mySQL表的标题而不是它们的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57700980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com