JSP 中的 JDBC 连接

Posted

技术标签:

【中文标题】JSP 中的 JDBC 连接【英文标题】:JDBC connection in JSP 【发布时间】:2017-04-06 09:33:49 【问题描述】:

我已编写代码连接到 Oracle 数据库以检索数据。

//数据库内容 员工: 身份证名称部门


     1 Ghiridhar            IT
     2 Pabitra              Finance
     3 Sagar                Management

我也尝试只使用 scriplet 标签而不是所有三个标签。然后到结果是一样的。

用于 JDBC 连接的 JSP 代码:

<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>

<body>

//Declaration
   <%!
       Statement stmt = null;
       Connection con = null;
       ResultSet rs = null;
       StringBuffer sb = new StringBuffer("");
   %>

//JDBC Code
    <%
            try  

Class.forName("oracle.jdbc.driver.OracleDriver");  

 con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
"system","system");  


 stmt=con.createStatement();  


 rs=stmt.executeQuery("select * from Employee");  

while(rs.next())  

out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  


  stmt.execute("insert into Employee values(4,'John','Finance')");
  rs=stmt.executeQuery("select * from Employee");  

 while(rs.next())  

 sb.append(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3)); 
 sb.append("</UL>"); 


out.println(sb);
con.close();    
 //try block ends
catch(Exception e)
 System.out.println(e); 
    %>
//code ends
</body>
</html>

输出屏幕为空白。请帮助我解决这个问题。

【问题讨论】:

看起来你有一个例外。使用正确的日志记录并向我们展示完整的异常 stakctrace。但说真的,不要将这样的代码放在 JSP 中。将其分解为单独的 dao 或服务层。 非常抱歉。但我忘了为 oracle 添加 JAR 文件。谢谢你让我留意日志。我已经在 Net bean 上执行了它,它把错误显示为一个信息,我没有注意到它。 旁注:不要在JSP中做业务逻辑;将其提取到一个类中,并使用 MVC 模式,或者(至少)从 JSP 调用该类。更容易维护,也更容易调试。编写意大利面条式代码的诱惑力更小。 【参考方案1】:

永远不要这样做。不要在 jsp 上打开连接,这是不好的形式。您的 JSP 不得包含 java 代码。所有java代码都应该在java类中,如果你想在你的jsp上做一些逻辑——使用jstl库。

【讨论】:

以上是关于JSP 中的 JDBC 连接的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面中怎么导入jdbc连接mysql

Jdbc连接数据库实验报告

如何使用 jdbc 连接从数据库中检索数据并将其显示在 jsp 文本字段中

jsp怎样用jdbc连接mysql数据库

无法在 jsp 文件中建立 jdbc 连接

JDBC 和 JSP 数据库连接