Java J2EE连接远程Oracle数据库表

Java J2EE连接远程Oracle数据库表,java,oracle,jdbc,Java,Oracle,Jdbc,我正在使用Windows7、64位和Eclipse for J2EE。我想通过J2EE代码显示Oracle数据库中的值。我尝试了oracle教程。但是我在Eclipse控制台中得到以下错误。请推荐我 其他详情: 1.在远程oracle设置中,我可以看到服务名称已启用,但未启用SID。 2.我的服务名称是“sample.lan”,当然我是在局域网内工作的。如果通过LAN连接远程oracleDB表,是否需要进行任何更改 连接字符串: <%@ page import="java.sql.*" %

我正在使用Windows7、64位和Eclipse for J2EE。我想通过J2EE代码显示Oracle数据库中的值。我尝试了oracle教程。但是我在Eclipse控制台中得到以下错误。请推荐我

其他详情: 1.在远程oracle设置中,我可以看到服务名称已启用,但未启用SID。
2.我的服务名称是“sample.lan”,当然我是在局域网内工作的。如果通过LAN连接远程oracleDB表,是否需要进行任何更改

连接字符串:

<%@ page import="java.sql.*" %>

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

connection = DriverManager.getConnection("jdbc:oracle:thin:@host:1521:service-name", "username", "password");

类forName(“oracle.jdbc.driver.OracleDriver”);
connection=DriverManager.getConnection(“jdbc:oracle:thin:@host:1521:service name”、“username”、“password”);
错误:

Connection Failed! Check output console
java.sql.SQLRecoverableException: I/O-Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:711)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:558)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.apache.jsp.testDBconnection_jsp._jspService(testDBconnection_jsp.java:94)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:229)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
    ... 32 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:162)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:411)
    ... 37 more
连接失败!检查输出控制台
java.sql.SQLRecoverableException:I/O错误:网络适配器无法建立连接
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
位于oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:711)
位于oracle.jdbc.driver.T4CConnection(T4CConnection.java:385)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:558)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于org.apache.jsp.testDBconnection\u jsp.\u jsp服务(testDBconnection\u jsp.java:94)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
位于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:727)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
原因:oracle.net.ns.NetException:网络适配器无法建立连接
在oracle.net.nt.connstategy.execute(connstategy.java:445)
位于oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464)
位于oracle.net.ns.NSProtocol.buildConnection(NSProtocol.java:594)
位于oracle.net.ns.NSProtocol.connect(NSProtocol.java:229)
位于oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 32多
原因:java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.waitForConnect(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(未知源)
位于java.net.AbstractPlainSocketImpl.doConnect(未知源)
位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源)
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:162)
位于oracle.net.nt.connpoption.connect(connpoption.java:133)
在oracle.net.nt.connstategy.execute(connstategy.java:411)
... 37多
  • 确保您可以从执行java代码的任何位置访问数据库主机的端口1521
  • 还要确保您可以使用一些标准数据库客户端(例如SQL*plus)连接到数据库,以检查您的数据库配置是否正确
  • 检查您的连接URL以确保它是否正确(此处有相关文档)

  • 除此之外,请注意:如果您的想法是自学或学习JDBC,这是完全正确的;如果您的代码是用于生产的,我强烈建议您不要将数据库访问混合到呈现层(JSP)中。我建议您在这种情况下考虑将应用程序按其响应能力定义的层拆分。p> 您甚至无法启动数据库连接。张贴你如何尝试连接。此外,请检查您的服务器是否允许通过TCP/IP进行连接,以及您是否发送了正确的参数/凭据。如果您确实在使用服务名称(而不是SID),则URL应为:
    jdbc:oracle:thin:@//host:1521/服务名称
    (注意