如题,我的问题并不复杂,就是连不上数据库。我用的是hibernate2.1去连Oracle10g,没用什么jbuilder或eclipse,用最简单的办法在我的tomcat里部署了一个应用。
可是最后的jsp页面报错:net.sf.hibernate.exception.GenericJDBCException: Cannot open connection 很郁闷!
我没用hibernate时,连接是正常的,所以,我的连接字符串、我的驱动应该是没问题的!只是不知是不是我的配置文件里的写法有问题?或者hibernate2.1不支持Oracle10g?要3.0?
不知用过的人有没有连接Oracle10g配置的例子???

解决方案 »

  1.   

    hibernate 没配置好
    看包都打进去了没!
      

  2.   

    楼上两位,感谢你们顶!但,
    包应该都有了!
    数据库肯定也没啥问题!我不是说过,在没有hibernate的时候,连的很正常!
      

  3.   

    用Hibernate 连别的数据库试试
      

  4.   

    可能Hibernate.hbm.xml配置文件写错了,最好把它贴出来让我们看看
    可能有的文件没有加载进去,优其是你的配置文件,
    可能加了Hibernate之后用到Hibernate的类写错了
    ......................
    ......................
    ......................光你给出的几句话得出来的可能性太多了......为什么不用开发工具~??????当你遇到了问题怎么办,就像这个,调试都没法调试,只能猜~!!!
      

  5.   

    这是Hibernate.hbm.xml的内容:
    <!DOCTYPE hibernate-configuration    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
    <hibernate-configuration>    
    <session-factory>        
    <property name="connection.datasource">java:comp/env/jdbc/hibernate</property>        
    <property name="show_sql">false</property>        
    <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
    <!-- Mapping files -->
    <mapping resource="Course.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>在server.xml中配的数据源:
    <Context path="/hibernate" docBase="hibernate" debug="0" reloadable="true" crossContext="true"> 
    <Resource name="jdbc/hibernate" auth="Container" type="javax.sql.DataSource"/>        
    <ResourceParams name="jdbc/hibernate">      
    <parameter>          
    <name>factory</name>      
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>      
    </parameter>     
    <parameter>          
    <name>driverClassName</name>            
    <value>oracle.jdbc.driver.OracleDriver</value>        
    </parameter>         
    <parameter>              
    <name>url</name>              
    <value>jdbc:oracle:thin:@192.168.0.211:1521:CMS33</value>            
    </parameter>        
    <parameter>             
    <name>username</name>           
    <value>name</value>        
    </parameter>      
    <parameter>         
    <name>password</name>         
    <value>password</value>           
    </parameter>      
    <parameter>     
    <name>maxActive</name>     
    <value>20</value>   
    </parameter>         
    <parameter>        
    <name>maxIdle</name>           
    <value>10</value>   
    </parameter>   
    <parameter>           
    <name>maxWait</name>     
    <value>-1</value>   
    </parameter>     
    </ResourceParams>     
    </Context>
    望高手指教……这样连Oracle10g有错吗?
      

  6.   

    你Course.hbm.xml里的配置没错吗?跟数据库里的对上了吗?
      

  7.   

    我没用过10g 
    这是我9i的配置
      server.xml
      <Context path="" docBase="." debug="0" crosscontext="false" reloadable="true">        <Resource name="jdbc/OracleDB" auth="Container"
      type="javax.sql.DataSource"/> 
     
    <ResourceParams name="jdbc/OracleDB">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@127.0.0.1:1521:quanwei</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>scott</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>tiger</value>
    </parameter> <parameter>
      <name>maxActive</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>10</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
      </ResourceParams>
    </Context> 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 name="org.apache.commons.dbcp.BasicDataSourceFactory">
    <property name="hibernate.show_sql">true</property>
            <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
            <property name="jndi.url">jdbc:oracle:thin:@127.0.0.1:1521:quanwei</property>
            <property name="connection.datasource">java:comp/env/jdbc/OracleDB</property>
          
          <mapping resource="login/po/FollowUser.hbm.xml" />
    <mapping resource="client/po/FollowArea.hbm.xml" />
    <mapping resource="client/po/FollowLevel.hbm.xml" />
    <mapping resource="client/po/FollowClient.hbm.xml" /> </session-factory></hibernate-configuration>
    检查一下你的驱动程序,版本是否匹配,是否放在了Tomcat 的 lib 里
      

  8.   

    我的Course.hbm.xml的配置应该没问题,刚对过!
    又做了一些尝试!又发现了新的错误:
    Cannot create JDBC driver of class '' for connect URL 'null'
    java.sql.SQLException: No suitable driver
    可是很奇怪,我的驱动ojdbc14.jar肯定没问题,不仅放在了自己的应用里,也放到了Tomcat的lib里!奇怪!!!
      

  9.   


    <property name="connection.driver_class">
    oracle.jdbc.OracleDriver
    </property>
    <property name="connection.url">
    jdbc:oracle:thin:@192.168.0.211:1521:CMS33
    </property>
    <property name="connection.username">name</property>
    <property name="connection.password">password</property>
    <property name="dialect">
    org.hibernate.dialect.Oracle9Dialect
    </property>
    <property name="show_sql">true</property>
    <property name="hibernate.use_outer_join">true</property>
    <property name="hibernate.format_sql">true</property>
    <property name="connection.useUnicode">true</property>把连接配在hibernate.hbm.xml里面再试试;
      

  10.   

    上面的 <property name="dialect">
    org.hibernate.dialect.Oracle9Dialect
    </property>
    改成你的:
    <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
      

  11.   

    按照MayAutumn(good good study && day day up) 的做法做了,还有个插入一条记录的页面,结果报Hibernate: insert into Courses (Name, CourseId) values (?, ?),没插入成功,但这是否意味着我的连接已经没问题了呢?
      

  12.   

    当然是了
    sql语句执行都是在connect之后执行的,不然会告诉你无法连接
      

  13.   

    楼上的,我都连成了,数据库驱动当然没问题!呵呵!
    报错信息就是上面写的Hibernate: insert into Courses (Name, CourseId) values (?, ?),插入的是空值!
      

  14.   

    那个不是报错信息啊,同学
    <property name="show_sql">true</property>这条,表示要show的sql就是那个
      

  15.   

    我懂!楼上的老师!呵呵!
    我现在的情况就是插入的是空值!别的报错信息没有!可为何会这样?用hibernate我都不会找错了……呵呵……希望有老师给指教一下???
      

  16.   

    插入空值,可能是没有setParameter()
      

  17.   

    在我的业务处理类里用的是session.save();不是楼上说的???
    奥!我一不小心打开数据库,居然发现成功了!待我把一些遗留问题搞清楚,就结贴!譬如我的数据源为何不成?
      

  18.   

    而且,我发现每次插入成功了就显示我前面提到的那句提示,Hibernate: insert into Courses (Name, CourseId) values (?, ?),是不是hibernate只显示这些,插入的内容它不显示???