2014-02-20 47 views
0

您好我的項目是HSQL嵌入了Spring + Hibernate的無法創建類的JDBC驅動程序 'org.hsqldb.jdbcDriver' 的連接網址 'JDBC:HSQLDB:DB /數據庫'

我diectory像

project name 
..src 
....domain 
....dao 
....service 
....main 
..applicationContext.xml 
..db/database 

我的數據庫名是數據庫

的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:oxm="http://www.springframework.org/schema/oxm" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd 
     http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> 

    <!-- Component scan to find all Spring components --> 
    <context:component-scan base-package="com.habitz.librarymanagement" /> 

    <!-- Data Source --> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
     <property name="url" value=" jdbc:hsqldb:db/database" /> 
     <property name="username" value="sa" /> 
     <property name="password" value="" /> 
     <property name="initialSize" value="1" /> 
     <property name="maxActive" value="5" /> 
     <property name="poolPreparedStatements" value="true" /> 
     <property name="maxOpenPreparedStatements" value="10" /> 
    </bean> 

    <!-- Hibernate Session Factory --> 
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 

     <!-- Hibernate configuration --> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> 
       <prop key="hibernate.hbm2ddl.auto">validate</prop> 
      </props> 
     </property> 

     <!-- The packages that contain our Hibernate model classes --> 
     <property name="packagesToScan"> 
      <list> 
       <value>com.habitz.librarymanagement.domain</value> 
      </list> 
     </property> 

     <!-- 
     <property name="cacheRegionFactory"> 
       <bean id="cacheRegionFactory" class="org.hibernate.cache.impl.NoCachingRegionFactory" /> 
     </property> 

     <property name="eventListeners"> 
       <map></map> 
     </property> 
     --> 

    </bean> 

    <!-- Hibernate transaction management --> 
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 

</beans> 

當我運行主類它給我 無法創建類'org.hsqldb.jdbcDriver'的JDBC驅動程序連接URL'jdbc:hsqldb:db/database' canot找到合適的驅動程序... 但hsqldb.jar在claspath ..!

有人知道請幫忙.. !!

回答

0

我不是XML的專家,但在我看來,驅動程序類的名稱是錯誤的。 使用普通的Java代碼,我傳遞「org.hsqldb.jdbc.JDBCDriver」作爲驅動程序的類名。

+0

我使用'org.hsqldb.jdbcDriver',它可以工作,但不能在升級hsqldb時使用。可能是有人認爲這個類名稱是愚蠢的,並改變了它。 – Tobb

1

關於以前的答案澄清混淆。

這兩個驅動程序的類名都是有效的。

如果你看看org.hsqldb.jdbcDriver這是一個非常簡單的類

/* Copyright (c) 2001-2011, The HSQL Development Group 
package org.hsqldb; 
import org.hsqldb.jdbc.JDBCDriver; 
public class jdbcDriver extends JDBCDriver {} 

它所做的就是擴展org.hsqldb.jdbc.JDBCDriver,因此只是一個別名它。

相關問題