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 连接的主要内容,如果未能解决你的问题,请参考以下文章