休眠 c3p0 和 Spring。 bean class [org.hibernate.c3p0.internal.C3P0ConnectionProvider] 的 属性 'driverClassName' 无效
Hibernate c3p0 and Spring. Invalid property 'driverClassName' of bean class [org.hibernate.c3p0.internal.C3P0ConnectionProvider]
我目前正在开发一个使用休眠和 Spring MVC 的应用程序。
我想实现c3p0,但我不明白如何实现它。
我使用了可选文件夹中的 c3p0 jar,Hibernate-c3p0-5.0.2.jar
和
c3p0-0.9.2.1.jar
.
这些是我的配置。
现在,我正在使用 Spring 中的 DriverManagerDatasource
。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
我试过这样做
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- C3P0 Config -->
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="100" />
<property name="hibernate.c3p0.max_size" value="10" />
<property name="hibernate.c3p0.max_statements" value="10" />
<property name="hibernate.c3p0.min_size" value="10" />
<property name="hibernate.c3p0.timeout" value="100" />
</bean>
但我遇到了错误。
Invalid property 'driverClassName' of bean class [org.hibernate.c3p0.internal.C3P0ConnectionProvider]
TIA。
driverClassName
是 DriverManagerDataSource
属性,而不是 C3P0ConnectionProvider
上的 属性。这就是您收到错误的原因。
而不是使用 Spring DriverManagerDataSource
,这只是一个简单的 DataSource
实现,根本不是连接池,您想使用 C3P0 的 DataSource
实现.尝试使用 ComboPooledDataSource
。该实现还有一个 driverClassName
属性,您需要将其设置为等于您的 数据库 驱动程序(如 MySQL 驱动程序或其他)。
这是我举起 web page:
的一个例子
cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver"); //loads the jdbc driver
cpds.setJdbcUrl("jdbc:mysql://localhost/test");
cpds.setUser("root");
cpds.setPassword("root");
那不是 Spring,只是调整一下放在 Spring 中。 class 全名是 com.mchange.v2.c3p0.ComboPooledDataSource
。你可以看到一个 Spring-based 例子 here.
我知道这个问题很老,但对于新手来说,希望它能有所帮助。
问题出在你的名字标签上
替换:
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
和
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
...
请注意:使用driverClass代替driverClassName,使用jdbcUrl代替url,user 用于代替用户名,password 是......这些是 ComboPooledDataSource 的参数
希望对您有所帮助
我目前正在开发一个使用休眠和 Spring MVC 的应用程序。 我想实现c3p0,但我不明白如何实现它。
我使用了可选文件夹中的 c3p0 jar,Hibernate-c3p0-5.0.2.jar
和
c3p0-0.9.2.1.jar
.
这些是我的配置。
现在,我正在使用 Spring 中的 DriverManagerDatasource
。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
我试过这样做
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- C3P0 Config -->
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="100" />
<property name="hibernate.c3p0.max_size" value="10" />
<property name="hibernate.c3p0.max_statements" value="10" />
<property name="hibernate.c3p0.min_size" value="10" />
<property name="hibernate.c3p0.timeout" value="100" />
</bean>
但我遇到了错误。
Invalid property 'driverClassName' of bean class [org.hibernate.c3p0.internal.C3P0ConnectionProvider]
TIA。
driverClassName
是 DriverManagerDataSource
属性,而不是 C3P0ConnectionProvider
上的 属性。这就是您收到错误的原因。
而不是使用 Spring DriverManagerDataSource
,这只是一个简单的 DataSource
实现,根本不是连接池,您想使用 C3P0 的 DataSource
实现.尝试使用 ComboPooledDataSource
。该实现还有一个 driverClassName
属性,您需要将其设置为等于您的 数据库 驱动程序(如 MySQL 驱动程序或其他)。
这是我举起 web page:
的一个例子 cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver"); //loads the jdbc driver
cpds.setJdbcUrl("jdbc:mysql://localhost/test");
cpds.setUser("root");
cpds.setPassword("root");
那不是 Spring,只是调整一下放在 Spring 中。 class 全名是 com.mchange.v2.c3p0.ComboPooledDataSource
。你可以看到一个 Spring-based 例子 here.
我知道这个问题很老,但对于新手来说,希望它能有所帮助。 问题出在你的名字标签上
替换:
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
和
<bean id="dataSource" class="org.hibernate.c3p0.internal.C3P0ConnectionProvider">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
...
请注意:使用driverClass代替driverClassName,使用jdbcUrl代替url,user 用于代替用户名,password 是......这些是 ComboPooledDataSource 的参数 希望对您有所帮助