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 com.op.Save.main(Save.java:28)
Caused by: java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:790)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
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 com.op.Save.main(Save.java:4

解决方案 »

  1.   

    org.hibernate.exception.GenericJDBCException: Cannot open connection
    没能取得与数据库的链接,问题应该出在hibernate配置文件
      

  2.   

    你的SYS账号权限不够!   或者是没有这个账户!
      

  3.   

    这是Hibernate配置文件的内容:请高手帮帮我啊,急了<?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:@192.168.1.100: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>
        
         <!-- 映射文件 -->
         <mapping resource="com/domain/User.hbm.xml"/>
         <mapping resource="com/domain/Medicine.hbm.xml"/>
        </session-factory></hibernate-configuration>
      

  4.   

    你看看Oracle数据库的服务开了吗?
      

  5.   

    就是一个OracleServiceORCL 的服务吧
      

  6.   

    Caused by: java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
    看这句话的意思...不是配置文件的问题
      

  7.   

    Caused by: java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
    是你SYS用户登录要使用SYSDBA 或者SYSOPER权限角色登录
    修改Hibernate配置文件。
     <property name="connection.url">jdbc:oracle:thin:@192.168.1.100:1521:testForHibernate as SYSDBA</property>
      

  8.   

    错了,是修改hibernate配置文件的connection.username参数
     <property name="connection.username">sys as sysdba </property>
      

  9.   

    数据库连接不上,看看用户名和密码正不正确?oracle的服务有木有打开?总之就是数据库连接不上!