好多朋友在spring中,整合mybatis的数据源时,报Cannot load JDBC driver class '${driverClassName}'] with root cause的错误

    错误原因如下:

    1 在整合mybatis时使用了mybatis-spring的插件

    2 MapperScannerConfigurer扫描器中配置了sqlSessionFactory

    3 spring容器的数据源中使用了${}读取配置文件

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${driverClassName}" />
        <property name="url" value="${url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

     4 MapperScannerConfigurer 用了ref来加载sqlSessionFactory属性

     5 sqlSessionFactory属性加载数据源时,${}尚未解析配置文件,导致将${driverClassName}读取为驱动类的值,而不是com.mysql.jdbc.Driver的配置值

     6 结果报出如下异常,mybatis框架误将${driverClassName}读取为驱动类

     错误解决方案:


    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.atguigu.mapper" />
        <property name="sqlSessionFactory" ref="sqlSessionFactoryBean" />
    </bean>


     改为


    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.atguigu.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean" />
    </bean>

MapperScannerConfig整合spring数据源的常见错误:Cannot load JDBC driver class ${driverClassName}MapperScannerConfig整合spring数据源的常见错误:Cannot load JDBC driver class ${driverClassName}

相关文章: