mysql驱动已导入,但是还是报错:JDBC Driver class not found: com.mysql.jdbc.Driver

时间:2022-09-19 12:31:39
严重: action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:353)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:296)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1158)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:473)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1206)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:66)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:414)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
... 36 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
... 46 more

12 个解决方案

#1


重新部署

#2


还是不行啊!

#3


配置文件贴出来看看  是不是数据源配置的格式不对?

#4


Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
这个应该是mysql的jar包没引入的原因

#5


mysql jar包 需要加载到项目工程lib下,进行编译,ok

#6


没有mysql的驱动包。你去mysql安装目录找驱动,然后加到工程的buildPath或者工程web-inf/lib中。

#7


驱动没加载好,buildpath好好设置一下

#8


这是连接数据库的代码,可以测试下数据库连接是否正常,如能正常连接,估计你的数据库连接配置文件有问题
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import util.Contant;

public class MysqlBase {
protected  Connection conn = null;        //数据库连接
protected Statement stmt = null;         //数据库表达式
protected ResultSet rs=null;
public void openConnection(){
String server = Contant.readValue("serverip");
String user = Contant.readValue("user");
String pwd = Contant.readValue("pwd");
String dbname = Contant.readValue("dbname");
// String server = "192.168.1.97";
// String user = "root";
// String pwd = "root";
// String dbname = "table";
 try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch(ClassNotFoundException ex) {
            ex.printStackTrace();
        }
       
        
        try {
            conn = DriverManager.getConnection("jdbc:mysql://"+server+":3306/"+dbname+"?useUnicode=true&characterEncoding=utf-8",user,pwd);
            stmt = conn.createStatement();
        }catch (Exception e) {
// TODO: handle exception
}
}
public void closeConnetction(){
try{
if(null != rs){
rs.close();
}
if(stmt != null) {
stmt.close();
    }
    if(conn != null) {
        conn.close();
    }
}catch (Exception e) {
// TODO: handle exception
}
}
}

#9


驱动跟配置可能不一样。

#10


导入包到lib目录,并Build Path引入

#11


果然是没有到入mysql包到项目的原因

#12


引用 10 楼 jayxhj 的回复:
导入包到lib目录,并Build Path引入


这个回复,解决了我的问题,赞一个!

#1


重新部署

#2


还是不行啊!

#3


配置文件贴出来看看  是不是数据源配置的格式不对?

#4


Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
这个应该是mysql的jar包没引入的原因

#5


mysql jar包 需要加载到项目工程lib下,进行编译,ok

#6


没有mysql的驱动包。你去mysql安装目录找驱动,然后加到工程的buildPath或者工程web-inf/lib中。

#7


驱动没加载好,buildpath好好设置一下

#8


这是连接数据库的代码,可以测试下数据库连接是否正常,如能正常连接,估计你的数据库连接配置文件有问题
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import util.Contant;

public class MysqlBase {
protected  Connection conn = null;        //数据库连接
protected Statement stmt = null;         //数据库表达式
protected ResultSet rs=null;
public void openConnection(){
String server = Contant.readValue("serverip");
String user = Contant.readValue("user");
String pwd = Contant.readValue("pwd");
String dbname = Contant.readValue("dbname");
// String server = "192.168.1.97";
// String user = "root";
// String pwd = "root";
// String dbname = "table";
 try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch(ClassNotFoundException ex) {
            ex.printStackTrace();
        }
       
        
        try {
            conn = DriverManager.getConnection("jdbc:mysql://"+server+":3306/"+dbname+"?useUnicode=true&characterEncoding=utf-8",user,pwd);
            stmt = conn.createStatement();
        }catch (Exception e) {
// TODO: handle exception
}
}
public void closeConnetction(){
try{
if(null != rs){
rs.close();
}
if(stmt != null) {
stmt.close();
    }
    if(conn != null) {
        conn.close();
    }
}catch (Exception e) {
// TODO: handle exception
}
}
}

#9


驱动跟配置可能不一样。

#10


导入包到lib目录,并Build Path引入

#11


果然是没有到入mysql包到项目的原因

#12


引用 10 楼 jayxhj 的回复:
导入包到lib目录,并Build Path引入


这个回复,解决了我的问题,赞一个!