无法将[org.apache.tomcat.jdbc.pool.DataSource]类型的构造函数参数值转换为必需类型[java.lang.String]:

时间:2015-09-16 06:16:25

标签: java spring hibernate tomcat jdbc

我正在尝试在jdbc中创建数据库的池连接,下面是我的代码,但我正在

错误:

org.springframework.beans.factory.UnsatisfiedDependencyException:在类路径资源[resources / database / Database.xml]中定义的名称为'org.springframework.jdbc.datasource.DriverManagerDataSource#0'的bean创建错误:通过表达的不满意依赖关系类型为[java.lang.String]的索引为0的构造函数参数:无法将类型为[org.apache.tomcat.jdbc.pool.DataSource]的构造函数参数值转换为必需类型[java.lang.String]:无法转换'org.apache.tomcat.jdbc.pool.DataSource'类型的值为必需类型'java.lang.String';嵌套异常是java.lang.IllegalStateException:无法将type [org.apache.tomcat.jdbc.pool.DataSource]的值转换为必需的类型[java.lang.String]:找不到匹配的编辑器或转换策略

我正在使用hibernate来保存数据库中的数据,如果我的方法是错误的,如何为JDBC数据库连接创建连接池

database.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">



<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">

  <constructor-arg ref="dataSource" /> 
</bean>


<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:mem:xml-config" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="initialSize" value="5" />
    <property name="maxActive" value="10" />
    <property name="maxIdle" value="5" />
    <property name="minIdle" value="2" />
 </bean>

</beans>

1 个答案:

答案 0 :(得分:3)

请删除DriverManagerDataSource的bean声明并包含以下内容以通过jdbcTemplate使用池化的dataSource: -

<bean class="org.springframework.jdbc.core.JdbcTemplate">
     <constructor-arg ref="dataSource" />
 </bean>