org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290)
at op.Save.main(Save.java:25)
Caused by: 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:
localhost:1521:orcl 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.<init>(PhysicalConnection.java:420)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.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.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
... 5 more
Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:149)
at op.Save.main(Save.java:39)

解决方案 »

  1.   

    我项目里有个ojdbc14.jar的包,不知道还要什么包
      

  2.   

    The Connection descriptor used by the client was:
    localhost:1521:orcl
    不要用localhost,最好用ip,
    另外看看listener配置和TNS配置(这2个里面的ip),另请确认你的orcl是用的sid名字吗?
      

  3.   

    如果还不行:
    select count(*) fromv$process--当前的连接数 
    select value from v$parameter where name='processes'--数据库允许的最大连接数 修改最大连接数: 
    alter system set processes=300 scope=spfile; 重启数据库: 
    shutdown immediate; 
    startup; 
      

  4.   

    Exception in thread "main" java.lang.NoClassDefFoundError
      

  5.   

    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>    <session-factory>
            <property name="connection.username">sys</property>
            <property name="connection.url">jdbc:oracle:thin:1521:testForHibernate</property>
            <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
            <property name="connection.password">tfh</property>
            <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
         <property name="show_sql">true</property>
         <property name="hibernate.hbm2dll.auto">create</property>
         <!-- 映射文件 -->
         <mapping resource="com/domain/User.hbm.xml"/>
         <mapping resource="com/domain/Medicine.hbm.xml"/>
        </session-factory></hibernate-configuration>
      

  6.   

    <property name="connection.url">jdbc:oracle:thin:1521:testForHibernate</property>
      

  7.   

    http://joanzq.iteye.com/blog/264593
    参考地址