Caused by: java.sql.SQLException: No suitable driver found for ${jdbc.url} 怎么解决,请各位大佬指点

  • 在单元测试里加载spring配置文件 applicationContext.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"
            xmlns:context="http://www.springframework.org/schema/context"
            xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.2.xsd">
     ​
         <context:property-placeholder location="classpath*:db.properties"/>
     ​
         <bean id="conn" class="com.mk.ConnectionFactoryBean">
             <property name="mysqlClassDriver" value="${jdbc.driver}"/>
             <property name="url" value="${jdbc.url}"/>
             <property name="username" value="${jdbc.username}"/>
             <property name="password" value="${jdbc.password}"/>
         </bean>
     ​
         <!--    通过特定的配置文件,配置有可能需要修改的字符串,有利于维护-->
     <!--    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->
     <!--        <property name="locations">-->
     <!--            <list>-->
     <!--                <value>classpath:db.properties</value>-->
     <!--            </list>-->
     <!--        </property>-->
     <!--    </bean>-->
     ​
     ​
     </beans>
     ​
  • db.properties如下

     jdbc.driver = com.mysql.cj.jdbc.Driver
     jdbc.url=jdbc:mysql://localhost:3306/hi?useSSL=false
     jdbc.username=root
     jdbc.password=root
  • 单元测试方法

        @Test
         public void test9 (){
             BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
             Connection conn = (Connection) bf.getBean("conn");
             System.out.println("conn = " + conn);
         }
  • 控制台错误信息

     org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'conn': FactoryBean threw exception on object creation; nested exception is java.sql.SQLException: No suitable driver found for ${jdbc.url}
     ​
         at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:178)
         at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:135)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1674)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1248)
         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:330)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
         at com.mk.MyTest.test9(MyTest.java:160)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:498)
         at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
         at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
         at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
         at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
         at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
         at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
         at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
         at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
     Caused by: java.sql.SQLException: No suitable driver found for ${jdbc.url}
         at java.sql.DriverManager.getConnection(DriverManager.java:689)
         at java.sql.DriverManager.getConnection(DriverManager.java:247)
         at com.mk.ConnectionFactoryBean.getObject(ConnectionFactoryBean.java:53)
         at com.mk.ConnectionFactoryBean.getObject(ConnectionFactoryBean.java:8)
         at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
         ... 28 more
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值