当前位置: 首页 > 知识库问答 >
问题:

Spring JDBC:无法获取数据源

斜瑞
2023-03-14

我有一个名为appconfig.XML的spring XML配置文件,它包含一个数据源bean和另一个将数据源作为参数传递给它的JDBCtemplate:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
</bean>

<bean id="JDBCTemplate" class="com.myprojects.JDBCTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>

我得到一个错误:

线程“main”org.springframework.beans.factory.BeanCreationException中出现异常:创建文件[appconfig.xml]中定义的名为“jdbcTemplate”的bean时出错:设置属性值时出错;嵌套异常为org.SpringFramework.Beans.PropertyBatchUpdateException;nested PropertyAccessException PropertyAccessException 1:org.springFramework.beans.MethodInvocationException:属性“Data Source”引发异常;嵌套异常为java.lang.IllegalArgumentException:属性“data source”是必需的

从我从这个错误中看到的情况来看,它无法将dataSource传递给JDBCTemplate。日志还说:

加载的JDBC驱动程序:com.mysql.JDBC.driver

xml中提到了所有依赖项,并且验证了spring所需的JAR已经加载,mysql jdbc连接器也已经加载。有什么线索表明问题可能是什么吗?

我尝试了一个不同的项目,其中我手动添加了所有spring依赖项和mysql jdbc连接器作为库的一部分。在那里工作得很好。但是在试图通过pom.xml包含依赖项时,我面临着这个问题。所以我假设这与一些依赖关系没有被拉进来或其他什么有关。但无法找出是哪一个错误。

共有1个答案

穆毅然
2023-03-14

它认为您的类jdbctemplate没有名为datasource的属性

可能您没有一个具有正确类型的单个参数的公共方法setDataSource()

也许是私人的。

 类似资料:
  • 我已经使用netbeans(8.0.2)中的持久性单元向导创建了数据源。但在glassfish上运行项目时,它找不到我的数据源。 例外情况 我正在使用EclipseLink JPA 2.1

  • 我正在尝试使用两个数据源与我的SpringBoot应用程序,但无法获得第二个数据源自动连接。我尝试过很多事情,但这是我最接近的一次: 我的Yaml文件: 这是我到目前为止最接近的一次。我之所以说它是最接近的,是因为如果我删除@qualifier,那么我的两个dao方法实际上都可以工作,假设SECOND_SELECT语句对于我的DB1是有效的SQL语句。当我为非主datasouce输入@Qualif

  • 我一直在尝试使用nativescript创建一个android应用程序。我正在使用fetch模块从服务器获取响应。当我试图从httpbin获得响应时。org/get,没关系。但当我试图从本地服务器获取响应时,网络请求失败。错误 发送到httpbin。组织/获取- 发送到本地主机:8000/api- 当我尝试从纯节点中的localhost:8000/api获取响应时。js通过请求模块。它工作得很好。

  • 我试图创建一个chatbot,它向spring-boot应用程序发出get请求,而spring boot应用程序向Dialogflow V2发出API调用。我试图通过GRPC访问Dialogflow V2 API。我已经创建了一个服务帐户和导出服务帐户密钥文件,并将其添加到spring-boot应用程序中。 当我试图从spring-boot应用程序向dialogflow发送请求时,我出现了以下错误

  • 以下YSQL留档: doc最后一段提到: ...有时,使用SELECT LAST_INSERT_ID()查询可能会很棘手,因为该函数的值的作用域是连接。因此,如果在同一个连接上发生其他查询,该值将被覆盖。另一方面,getGeneratedKeys()方法的作用域由语句实例确定,因此即使其他查询发生在同一连接上,但不在同一语句实例上,也可以使用它。 由于我在一个完全分布式的环境中工作,所以对我来说,

  • 我是新来的和学习它我想从Imdb站点/特定的电影链接提取评级,并发现我将能够从div与class=,因此我写了以下内容代码: 很奇怪,我没有得到任何数据,因为我能够在几周前得到评级数据。是div与class=存在于页面/url上。