解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

最近在做JSP的数据库连接操作时,一直出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题。

1.可能是连接问题。

这是定义的dataBean:

public class dataBean {
    private Connection con;
    public dataBean(){
        String CLASSFROENAME = "com.mysql.jdbc.Driver";
        String SERVANDDB = "jdbc:mysql://localhost:3306/jsp";
        String USERNAME = "root";
        String PASSWORD = "root";
        try {
            Class.forName(CLASSFROENAME);
            con = DriverManager.getConnection(SERVANDDB,USERNAME,PASSWORD);
        } catch (ClassNotFoundException e) {

            System.out.println("ClassNotFoundException!!!");
            e.printStackTrace();
        } catch (SQLException e) {

            System.out.println("SQLException!!!");
            e.printStackTrace();

        }
    }
    public ResultSet getData(){
        try {
            Statement stm = con.createStatement();
            ResultSet result = stm.executeQuery("SELECT * FROM list");
            return result;

        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }
}

同样的配置参数使用PHP连接完全没有问题,排除参数错误。

2.没有JDBC的驱动包。

缺少驱动包可以在Mysql官网下载最新的驱动包导入。

将下载的jar文件导入到Module/Dependencies:
这里写图片描述

但是此时还是会出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题。

最后将这个jar文件导入到工程的web/WEB-INF/lib中,再次重启服务器,可以正常连接。

3.没有配置Tomcat连接池

在Tomcat的conf/server.xml中配置
打开tomcat的conf/server.xml文件,找到节点:

<GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

在该节点中加入相关的池配置信息:

<GlobalNamingResources>
             <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

             <!--配置mysql数据库的连接池, 
                需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下        
               -->
             <Resource name="jdbc/mysqlds" 
              auth="Container" 
              type="javax.sql.DataSource" 
              username="root" 
              password="root" 
              maxIdle="30" 
              maxWait="10000" 
              maxActive="100"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/jsp" />
  </GlobalNamingResources>

在tomcat的conf/context.xml文件中的节点中加入如下内容

<ResourceLink name="jdbc/mysqlds" global="jdbc/mysqlds" type="javax.sql.DataSource"/>

然后在web项目中的WEB-INF目录下的web.xml中配置

<resource-ref>
      <description>mysql数据库连接池</description>
      <res-ref-name>jdbc/mysqlds</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

重启服务器,解决问题。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页