Spring与MyBatis集成,使用的数据源是c3p0,为什么需要引入spring-jdbc这个jar包?(如下面的代码)

发布于 2022-09-07 11:57:55 字数 2019 浏览 23 评论 0

下面的错误应该是与数据源的注入相关吧!!!但是为什么引入spring-jdbc这个jar包就能解决呢?

如果不引入spring-jdbc这个jar包:将报如下的错(关键信息):
警告: Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sqlSessionFactory' defined in file 
[C:\Users\123\IdeaProjects\SpringDemo\target\seckill\WEB-INF\classes\spring\spring-dao.xml]:
 Error setting property values;
 nested exception is org.springframework.beans.PropertyBatchUpdateException; 
nested PropertyAccessExceptions (1) are:

PropertyAccessException 1: org.springframework.beans.MethodInvocationException:
 Property 'dataSource' threw exception; 
nested exception is java.lang.NoClassDefFoundError: 
org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy

下面再附上spring-dao.xml中有关数据源的配置:

<!--2.数据库连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <!--配置连接池属性-->
    <property name="driverClass" value="${driver}" />

    <!-- 基本属性 url、user、password -->
    <property name="jdbcUrl" value="${url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${password}" />

    <!--c3p0私有属性-->
    <property name="maxPoolSize" value="30"/>
    <property name="minPoolSize" value="10"/>
    <!--关闭连接后不自动commit-->
    <property name="autoCommitOnClose" value="false"/>

    <!--获取连接超时时间-->
    <property name="checkoutTimeout" value="1000"/>
    <!--当获取连接失败重试次数-->
    <property name="acquireRetryAttempts" value="2"/>
</bean>



<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!--扫描sql配置文件:mapper需要的xml文件-->
    <property name="mapperLocations" value="classpath:com/imooc/mappers/*.xml"/>
</bean>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怼怹恏 2022-09-14 11:57:55

和c3p0没有关系,是因为org.mybatis.spring.SqlSessionFactoryBean用到了spring-jdbc。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文