我正在尝试运行一个hello world:带有HSQLDB和C3PO连接池的Spring/Hibernate。相同的代码适用于 mySQL(仅适用于不同的方言和驱动程序)
我已经运行了数据库,并且可以使用 swing GUI 连接到它。但是当我尝试运行我的应用程序时,我遇到了启动错误。以下是详细信息:
1:错误 -
信息:初始化 Spring 根 WebApplicationContext [错误] [pool-2-thread-1 05:20:08] (JDBCExceptionReporter.java:logExceptions:101) 无法从底层数据库获取连接![错误] [pool-2-thread-1 05:20:08] (ContextLoader.java:initWebApplicationContext:220) 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建 ServletContext 中定义的名称为“sessionFactory”的 bean 时出错资源[/WEB-INF/hibernate-context.xml]:调用init方法失败;嵌套异常是 org.hibernate.HibernateException:当 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) 在 org.springframework.beans.factory 没有可用连接时,必须设置“hibernate.dialect” 。支持。
2:休眠上下文.xml -
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.gleeb.sample.model" />
<property name="hibernateProperties">
<props>
<!-- <prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> -->
<prop key="dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="show_sql">false</prop>
<prop key="hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" p:driverClass="org.hsqldb.jdbc.JDBCDriver"
p:jdbcUrl="jdbc:hsqldb:hsql://localhost/testdb" p:user="sa"
p:password="" p:acquireIncrement="5" p:idleConnectionTestPeriod="60"
p:maxPoolSize="100" p:maxStatements="50" p:minPoolSize="10" />
<!-- Declare a transaction manager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />