通过以下代码,在单位里能正常连接oracle服务器,并且输出相关表的记录
<%
Class.forName( "oracle.jdbc.driver.OracleDriver ").newInstance();
String url= "jdbc:oracle:thin:@10.38.58.83:1521:LYMCCADMIN ";
//LYMCCADMIN为你的数据库的SID
String user= "rdl ";
String password= "rdl ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from testrdl ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为: <%=rs.getString( "username ")%>
<br>
<%
}
%>
可是同样的代码,在家里却不行,不知为什么,执行后,却错误提示:
javax.servlet.ServletException: Io 异常: The Network Adapter could not establish the connection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.testoracle.index_jsp._jspService(org.apache.jsp.testoracle.index_jsp:96)
我把家里的代码贴上来:
<%
Class.forName( "oracle.jdbc.driver.OracleDriver ").newInstance();
String url= "jdbc:oracle:thin:@localhost:1521:LYMCC ";
//LYMCC为家里数据库的SID
String user= "rdl ";
String password= "rdl ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from testrdl ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为: <%=rs.getString( "username ")%>
<br>
<%
}
%>
家里电脑装了oracle服务器版,tomcat,jdk1.5.0
单位电脑装了tomcat,jdk 1.6 ,oracle装在另一台服务器上
------解决方案--------------------
你打开个命令窗口输入:netstat -an看1521端口打开没,没打开就是有服务没起动.
------解决方案--------------------
这可能是权限问题。。你用默认的SYSTEM进一下。把上面的用户名改成SYSTEM看一下。
可能是你的SYSTEM没有给权限给rdl这个吧
------解决方案--------------------
你可以试一下不要用IP和计算机名来连接
当然还有端口没有打开,也可以是端口被你的防火墙之类的软件给禁用了
还有就是你的防火墙禁止了网络服务
检查网络是否联通,再用TNSPING测试ORACLE服务是否正常
------解决方案--------------------
你可以试一下不要用IP连接,而用计算机名来连接
------解决方案--------------------
本地机用ip有时候就有问题,用机器名吧