zsl198854 2010-10-21 10:24
浏览 346
已采纳

Hibernate - Oracle - 一次取很多数据-Cannot open connection

[quote]2010-10-21 10:29:51,140 [http-8888-2] ERROR in [org.hibernate.util.JDBCException
Reporter.logExceptions(JDBCExceptionReporter.java:101)] - Listener refused the c
onnection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
127.0.0.1:1521:ORBITDB

org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException
(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.j
ava:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
er.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
er.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager
.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.
java:167)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatc
her.java:161)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1573)
at org.hibernate.loader.Loader.doQuery(Loader.java:696)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lo
ader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1722)

    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:

165)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.j
ava:835)
at cn.comdev.dao.AssetPropertyDAL.GetAssetPropertyValue(AssetPropertyDAL
.java:83)
at cn.comdev.enterprise.AssetAssocBLL.BuildNextLevelFacilityHierarchy(As
setAssocBLL.java:418)
at cn.comdev.enterprise.AssetAssocBLL.BuildNextLevelFacilityHierarchyRec
ursively(AssetAssocBLL.java:335)
at cn.comdev.enterprise.AssetAssocBLL.BuildNextLevelFacilityHierarchyRec
ursively(AssetAssocBLL.java:340)
at cn.comdev.enterprise.AssetAssocBLL.GetFacilityHierarchy(AssetAssocBLL
.java:258)
at cn.comdev.service.EquipmentExportService.WS_GetOrganizationHierarchy(
EquipmentExportService.java:174)
at test.WS_GetOrganizationHierarchy.doGet(WS_GetOrganizationHierarchy.ja
va:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.do
FilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcesso
r.java:861)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.pr
ocess(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:15
84)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Listener refused the connection with the follo
wing error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
127.0.0.1:1521:ORBITDB

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java

:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:261)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:
441)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensio
n.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnectio
n(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager
.java:446)
... 38 more
java.lang.RuntimeException: Cannot open connection
[/quote]

  • 写回答

3条回答 默认 最新

  • 勤劳的小猿 2010-10-22 12:30
    关注

    我给你写一个connection连接;
    [code="java"]
    public class DB
    {
    private static Connection con = null;
    private static ResultSet rs = null;
    private static PreparedStatement pstm = null;

    public static Connection getCon()
    {
        String strDriver = "oracle.jdbc.driver.OracleDriver";
        String strUrl = "jdbc:oracle:thin:@192.168.100.70:1521:orcl";
        String strUid = "fms";
        String strPid = "fms!123";
    
        try
        {
            Class.forName(strDriver);
            con = DriverManager.getConnection(strUrl, strUid, strPid);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            con = null;
        }
        return con;
    }
    
    public static void closeCon(Connection con, Statement stmt, ResultSet rs)
    {
        try
        {
            if (rs != null)
            {
                try
                {
                    rs.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
            if (stmt != null)
            {
                try
                {
                    stmt.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
            if (con != null)
            {
                try
                {
                    con.close();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    

    }
    [/code]
    用法
    [code="java"]
    public class FmBld0101Dao
    {
    private Connection con = null;
    ResultSet rs = null;
    CallableStatement cstm = null;

    @SuppressWarnings("static-access")
    public String GetMaxBldcode() 
    {
        try 
        {      //我这里用的是存储过程你可以换别的。jdbc也行。你自己写吧
            String sql = "call SP_FMS_BLD_GetMaxBuildingCode(?)";
    
            con = DB.getCon();
            cstm = con.prepareCall(sql);
            cstm.registerOutParameter(1, Types.VARCHAR);
            cstm.execute();
    
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        } 
        finally 
        {
            DB.closeCon(con, cstm, null);
        }
        return "";
    }
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退