不好意思,hibernate的配置文件贴错了
是这样写的
<property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property> 
   <property name="connection.username">administrator</property> 
   <property name="connection.password">bjzx1234!</property> 
   <property name="connection.url">jdbc:db2://10.10.19.150:50000/TESTUTF</property> 
   <property name="default_schema">administrator</property> 
<property name="show_sql">true</property>
<property name="use_outer_join">true</property>
<property name="dialect">net.sf.hibernate.dialect.DB2Dialect</property>
<property name="fetch_size">50</property>
<property name="batch_size">30</property>

解决方案 »

  1.   

    这个应该跟配置文件没有关系吧.换一个数据库连连试试看!
    GBK不行的话,试试gb2312!!
      

  2.   

    db2建库的时候,只提供两种数据库编码方式,gbk和utf8
      

  3.   

    估计应该是 Configured SessionFactory 没有配置的问题。估计问题应该是你的hibernate的配置文件少配了一个参数。有个样板(是培植oracle JDBC连接的hibernate的配置文件,你可以参考参考):         <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.cache.provider_class">net.sf.hibernate.cache.HashtableCacheProvider</property>
             <property name="hibernate.connection.username">temp</property>
             <property name="hibernate.connection.password">temp</property>        
             <property name="hibernate.connection.url">jdbc:oracle:thin:@yourserver:1521:yourdb</property>
            <property name="show_sql">true</property>
    <property name="jdbc.fetch_size">50</property>
    <property name="jdbc.batch_size">30</property>
    估计你少配的是这个<property name="hibernate.cache.provider_class">参数!!
      

  4.   

    <property name="hibernate.cache.provider_class">
    加上这个配置以后
    还是和原来一样?!
    哭死
      

  5.   

    最主要的是冷静!
    首先觉得应该解决的还是这个原因:估计你的工程不知是否没有加载你配置的xml文件
    09:02:51,437  INFO Configuration:1030 - Configured SessionFactory: null以下是hibernate.xml简捷的配置。(参考)
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
     
    <hibernate-configuration>
      <session-factory>
        <!--JDBC连接 -->
             <property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.cache.provider_class">net.sf.hibernate.cache.HashtableCacheProvider</property>
             <property name="hibernate.connection.username">temp</property>
             <property name="hibernate.connection.password">temp</property>        
             <property name="hibernate.connection.url">jdbc:oracle:thin:@yourserver:1521:yourdb</property>
            <property name="show_sql">true</property>
    <property name="jdbc.fetch_size">50</property>
    <property name="jdbc.batch_size">30</property>                 <mapping resource="*.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>再rebuild工程的时候,记得在Resource 中把*.xml选择copy。(即把)
    我用的是jb
      

  6.   

    别急,慢慢找问题。急 不是解决问题的办法。
    你看 异常首先报的错是:
    09:02:51,437  INFO Configuration:1030 - Configured SessionFactory: null追回到你的代码中:应该在at cn.sh.guanghua.alertweb.dao.impl.DTypeDaoImpl.getValidTypeByType(DTypeDaoImpl.java:31)的DTypeDaoImpl.java 31行处,这个错误看上去是SQL执行错误。那么你可以试试:自己创建一个简单的表,做的仅仅从这个表去数据,如果能取出来,证明不是配置的问题,如果取不出来则是表的关联问题或其他的。
    总之慢慢找,别急!
      

  7.   

    我帮你找了个网址:
    你可以看看别人是怎么配置的。
    http://www.jdon.com/jive/thread.jsp?forum=62&thread=9281
    用的就是用hibernate连接到DB2
      

  8.   

    09:02:51,500  INFO DriverManagerConnectionProvider:43 - Hibernate connection pool size: 20
    09:02:51,546  INFO DriverManagerConnectionProvider:77 - using driver: com.ibm.db2.jcc.DB2Driver at URL: jdbc:db2://10.10.19.150:50000/TESTUTF
    09:02:51,546  INFO DriverManagerConnectionProvider:78 - connection properties: {user=administrator, password=bjzx1234!}
    09:02:51,562  INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
    09:02:52,296  INFO SettingsFactory:102 - Use scrollable result sets: true
    09:02:52,296  INFO SettingsFactory:105 - Use JDBC3 getGeneratedKeys(): false
    09:02:52,296  INFO SettingsFactory:108 - Optimize cache for minimal puts: false
    我觉得楼主的连接没有错误...至少cfg.xml已经正确加载了...否则不会有上面的信息错误所在应该在select dtype0_.type_id as type_id, dtype0_.type_type as type_type, dtype0_.type_name as type_name, dtype0_.type_desc as type_desc, dtype0_.valid_ as valid_, dtype0_.transport_ as transpor6_ from administrator.d_types dtype0_ where (dtype0_.type_type=? )and(dtype0_.valid_=1 ) order by  dtype0_.type_id
    09:02:53,265  WARN JDBCExceptionReporter:38 - SQL Error: -301, SQLState: 07006执行这个sql之后报出SQLState: 07006错误...查一下DB2的SQLState代码...07006是数据类型转换错误应该是楼主的库表数据类型定义有问题....是不是用到了blob类型了?
      

  9.   

    估计应该是:
    <property name="hibernate.connection.driver_class">COM.ibm.db2.jdbc.app.DB2Driver</property>你的:
    <property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>给我的直觉是你的驱动配错了!!
      

  10.   

    所以hibernate在执行的时候才报SQL错误!
      

  11.   

    <property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>我用这个是连接远程的db2数据库啊
      

  12.   

    试试吧。不行的话,在网上多GOOGLE
      

  13.   

    我这个程序在连接本地DB2数据库的时候可以正常运行的
    我这次只是更改了一下hibernate.cfg.xml文件来连接远程的DB2数据库本地的数据库和远程的数据库,一摸一样