解决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;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

同样的配置参数使用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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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

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

然后在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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重启服务器,解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值