gpt4 book ai didi

java - 如何从jsp文件中检索数据库中的数据?

转载 作者:行者123 更新时间:2023-11-29 06:34:22 25 4
gpt4 key购买 nike

我有一个 .jsp 文件,它主要显示数据库中的数据。数据库类在 .java 文件中单独定义。为了获取数据库的内容,我调用了数据库的 getData 方法。但是函数调用永远不会执行,也不会返回任何内容。

但是,如果我从 getData 函数返回任何预先计算的值,那么它会正常执行。

我想知道如何从 .jsp 文件访问数据库。

我不想将 java 代码直接添加到 .jsp 文件中。所以我想通过方法调用来完成。


来自 .jsp 文件的函数:

<%
ArrayList<String> al = com.Database.getData();
%>


Java函数:

getData(){
al = new ArrayList<String>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
al.add("first");
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();

String sql = "SELECT rs FROM DATABASE";
rs = stmt.executeQuery(sql);
while(rs.next()){
String str = rs.getString("str");
al.add(str);
}
}catch(Exception e){
e.printStackTrace();
}
al.add("nikunj ");
al.add("banka ");
return al;
}

调用后 arraylist 的内容是 {"first", "nikunj", "banka"} 并且没有来自数据库的数据。

如何从数据库中获取数据。我已经尝试创建一个静态 block ,它将在程序开始时填充 ArrayList,但即使这样也不起作用。

最佳答案

有几种方法可以做到这一点。您也可以使用 JSTL如果您想在 JSP 中避免使用 Java 代码。例如:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>

<sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/test"
user="root" password="pass123"/>

<html>
<head>
<title>JSTL SQL</title>
</head>
<body>

<sql:query var = "result" dataSource="${dataSource}">
SELECT str FROM table
</sql:query>

<table border=1>
<c:forEach var="row" query="${result.rows}">
<tr>
<td><c:out value="${row.str}"/></td>
</tr>
</c:forEach>
</table>

</body>
</html>

也许你想阅读:

关于java - 如何从jsp文件中检索数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369261/

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