Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException:spring JdbcTemplate项目中的com.jdbc.mysql.Driver_Java_Mysql_Spring_Jdbc_Intellij Idea - Fatal编程技术网

java.lang.ClassNotFoundException:spring JdbcTemplate项目中的com.jdbc.mysql.Driver

java.lang.ClassNotFoundException:spring JdbcTemplate项目中的com.jdbc.mysql.Driver,java,mysql,spring,jdbc,intellij-idea,Java,Mysql,Spring,Jdbc,Intellij Idea,我确实添加了mysql.jar文件,但仍然得到了java.lang.ClassNotFoundException:com.jdbc.mysql.Driver 这里是外部图书馆 [在此处输入图像描述][1] 这是LoginAction.java package action; import com.opensymphony.xwork2.ActionSupport; import org.springframework.jdbc.core.JdbcTemplate; /** * Create

我确实添加了mysql.jar文件,但仍然得到了java.lang.ClassNotFoundException:com.jdbc.mysql.Driver

这里是外部图书馆 [在此处输入图像描述][1]

这是LoginAction.java

package action;

import com.opensymphony.xwork2.ActionSupport;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * Created by ccc on 2016/12/2.
 */
public class LoginAction extends ActionSupport {
    private JdbcTemplate jdbcTemplate;

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Override
    public String execute() throws Exception {
        //return SUCCESS;
        String sql="SELECT Definition FROM word_test LIMIT 10,10;";
        if(jdbcTemplate==null){
            return ERROR;
        }else {
            jdbcTemplate.execute("UPDATE word_test\n" +
                    "SET Definition='what'\n" +
                    "WHERE id=1;");
            return SUCCESS;
        }
    }

}
这是一个错误

    03-Dec-2016 11:29:15.194 警告 [C3P0PooledConnectionPoolManager[identityToken->1hge1149k1i131k71i7l21o|5b4523ab]-HelperThread-#0] com.mchange.v2.c3p0.DriverManagerDataSource. Could not load driverClass com.jdbc.mysql.Driver
 java.lang.ClassNotFoundException: com.jdbc.mysql.Driver
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1109)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:143)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:173)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
这是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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource" />
    </bean>
    <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <!-- 连接驱动 -->
    <property name="driverClass" value="com.jdbc.mysql.Driver" />
    <!-- 连接URL -->
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/word" />
    <!-- 用户账号 -->
    <property name="user" value="root" />
    <!-- 用户密码 -->
    <property name="password" value="MySqlccc123456" />
    <!-- 连接池中保留的最大接数。默认值: 0~30   -->
    <property name="maxPoolSize" value="30" />
    <!-- 连接池中保留的最小接数。默认值: 0~30   -->
    <property name="minPoolSize" value="0" />
    <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 2 -->
    <property name="acquireIncrement" value="2" />
    <!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default:0 -->
    <property name="maxIdleTime" value="1800" />
    <!-- -->
    <property name="maxConnectionAge" value="300" />
    </bean>
    <bean id="iocLoginAction" class="action.LoginAction">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>
</beans>
我做了一个测试。java也将导致错误

package action;

/**
 * Created by ccc on 2016/12/2.
 */
import com.mysql.jdbc.Driver
public class TestMain {
    public static void main(String[] args){
        try {
            Class<?> clas = Class.forName("com.jdbc.mysql.Driver");
        } catch (ClassNotFoundException e) {
            System.out.print("can't find jdbc"+"\n"+"\n"+"\n");
            e.printStackTrace();
        }
    }
}
java.lang.ClassNotFoundException: com.jdbc.mysql.Driver
can't find jdbc
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)


    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at action.TestMain.main(TestMain.java:9)
    at sun.reflect.NativeMethodAccessorI
然后我将数据源更改为这个(applicationContext.xml),它就可以工作了,为什么? 如何使用c3p0数据源

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       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.xsd">

    <!--数据源的配置 -->
    <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/word"></property>
        <property name="username" value="root"></property>
        <property name="password" value="MySqlccc123456"></property>
    </bean>

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <bean name="iocLoginAction" class="action.LoginAction">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>


</beans>


jar文件不在类路径中。检查
TestMain.java中第10行的“externallibraries”

Class.forName(“com.mysql.jdbc.Driver”)
我添加了一张“externallibraries”的图片。您是手动输入类名的吗?请将
com.jdbc.mysql.Driver
修改为
com.*mysql.jdbc**.Driver
。是否手动输入类名?请将com.jdbc.mysql.Driver修改为com.**mysql.jdbc**.Driver。是否手动输入类名?请将com.jdbc.mysql.Driver修改为com.*mysql.jdbc**.Driver。是否手动输入类名?请将
com.jdbc.mysql.Driver
修改为
com.mysql.jdbc.Driver
。尝试
com.mysql.jdbc.Driver
而不是
com.jdbc.mysql.Driver
。你导入的
正确,那么为什么要在
类中翻转包名。forName()
调用?谢谢,你说得对。我太粗心了!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       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.xsd">

    <!--数据源的配置 -->
    <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/word"></property>
        <property name="username" value="root"></property>
        <property name="password" value="MySqlccc123456"></property>
    </bean>

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <bean name="iocLoginAction" class="action.LoginAction">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>


</beans>