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

标签 java jsp jdbc

我有一个 .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/

相关文章:

jdbc - "Web development with Clojure"- 编译错误 : No such var: sql/create-table

java - 通过SQLWarning访问原始查询

java - Android: LAME 将 AudioRecoder 的 PCM 数据转换为 MP3,但 MP3 文件有一些噪音

java - 具有数据驱动开发的最佳 Java BDD 框架?

java - cron 作业是否重叠?

java - 在 JSTL 循环中调用带参数的方法

java - JSP/Servlet 属性验证

java - Java Arraylist 上的添加/删除

java - 如何使用java将数据插入包含mediumtext数据类型的mysql数据库表

java - Apache Shiro 中的初始化异常错误