JDBC连数据库,总是说我getConnection的语句错误,求大神搭救。

lw349774469 2012-11-06 04:40:17
LZ新手菜鸟一只啊
最近写JSP连接数据库的语句,老是报错。连照着例子敲出来的代码也报错,驱动也加载了的。
错误代码如下:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /jdbc.jsp at line 25

22: </tr>
23: <%
24: Class.forName("oracle.jdbc.driver.OracleDriver");
25: Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@172.16.72.237:1521:237", "dascm", "aaaa");
26: Statement stmt = con.createStatement();
27: ResultSet rs = stmt.executeQuery("select * from emp");
28: while(rs.next())


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

javax.servlet.ServletException: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
172.16.72.237:1521:237

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.jdbc_jsp._jspService(jdbc_jsp.java:134)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
172.16.72.237:1521:237

oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
java.sql.DriverManager.getConnection(DriverManager.java:582)
java.sql.DriverManager.getConnection(DriverManager.java:185)
org.apache.jsp.jdbc_jsp._jspService(jdbc_jsp.java:87)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

这个是JSP代码:

<html>
<head>
<title>使用JDBC直接访问数据库</title>
</head>
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<body>
<FONT SIZE=5 COLOR=blue>使用JDBC直接访问数据库</FONT>
<BR>
<HR>
<BR>
<table border=1 >
<tr>
<td>员工号</td>
<td>姓名</td>
<td>工作性质</td>
<td>所属领导编号</td>
<td>入职时间</td>
<td>薪资</td>
<td>奖金</td>
<td>部门编号</td>
</tr>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@172.16.72.237:1521:237", "dascm", "aaaa");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from emp");
while(rs.next())
{
%>
<tr>
<td><%=rs.getInt(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getInt(4)%></td>
<td><%=rs.getDate(5)%></td>
<td><%=rs.getInt(6)%></td>
<td><%=rs.getInt(7)%></td>
<td><%=rs.getInt(8)%></td>
</tr>
<%
}
rs.close();
con.close();
%>
</table>
</body>
</html>

...全文
854 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyx80004 2012-11-07
  • 打赏
  • 举报
回复
jdbc:oracle:thin:@172.16.72.237:1521:237这句话有问题吧,你看自己看看你的端口对么
IT0918liu 2012-11-07
  • 打赏
  • 举报
回复
同意楼上观点,做链接的时候要准确写明数据库名字
forgetsam 2012-11-07
  • 打赏
  • 举报
回复
引用 9 楼 lw349774469 的回复:
问题是 我用PL/SQL连着这个237这个库呢 端口也确定1521无误啊
PL/SQL连的是连库串,不是库 自己打开命令行,敲tnsping 237 看自己的数据库叫什么名
  • 打赏
  • 举报
回复
楼主 端口后面写的是全局数据库名 也就是楼主装orcle设置的那个名字
lw349774469 2012-11-06
  • 打赏
  • 举报
回复
引用 3 楼 zxhcloth 的回复:
引用 2 楼 lw349774469 的回复:引用 1 楼 zxhcloth 的回复:数据库找不到237这个sid 不会啊 这个地址和数据库都是有的啊 登录名和password也都是对的啊 没有什么不会的,错误报告里写的清清楚楚。 ORA-12505, TNS:listener does not currently know of SID given in c……
问题是 我用PL/SQL连着这个237这个库呢 端口也确定1521无误啊
zpshwd 2012-11-06
  • 打赏
  • 举报
回复
同上 我的是jdbc:oracle:thin:@127.0.0.1:1521:XE
靖远小和尚 2012-11-06
  • 打赏
  • 举报
回复
jdbc:oracle:thin:@172.16.72.237:1521:237这句话有问题吧,你看自己看看你的端口对么
bpqqop 2012-11-06
  • 打赏
  • 举报
回复
我也MySql,也是出错了~
QQ958244953 2012-11-06
  • 打赏
  • 举报
回复
我们用Mysql,爱莫能助。我也是初学者。别灰心,会知道的。
yao376689024 2012-11-06
  • 打赏
  • 举报
回复
楼主确定237是你的数据库实例名字吗····,确定之后,再确定数据库密码账号,一般的mysql的用户名密码都是默认的。如果加了的话那就加上你的用户名密码。再确定其它的
zxhcloth 2012-11-06
  • 打赏
  • 举报
回复
引用 2 楼 lw349774469 的回复:
引用 1 楼 zxhcloth 的回复:数据库找不到237这个sid 不会啊 这个地址和数据库都是有的啊 登录名和password也都是对的啊
没有什么不会的,错误报告里写的清清楚楚。 ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
lw349774469 2012-11-06
  • 打赏
  • 举报
回复
引用 1 楼 zxhcloth 的回复:
数据库找不到237这个sid
不会啊 这个地址和数据库都是有的啊 登录名和password也都是对的啊
zxhcloth 2012-11-06
  • 打赏
  • 举报
回复
数据库找不到237这个sid

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧