zoukankan      html  css  js  c++  java
  • 解决Idea创建的maven Web项目无法连接mysql数据库

    1、解决报错

    java.lang.NullPointerException com.yhq.DBconn.selectSql(DBconn.java:37) com.yhq.UserDaoImpl.login(UserDaoImpl.java:24) com.yhq.DengluServlet.doPost(DengluServlet.java:22) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) com.yhq.EncodingFilter.doFilter(EncodingFilter.java:20)

    java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    init [SQL驱动程序初始化失败!

    报错原因是:

    执行Class.forName("com.mysql.cj.jdbc.Driver");报错了,捕获的异常是:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

    解决方法:添加maven:

      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.12</version>
        </dependency>java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

    发现仍旧报同样的错,原因是,虽然mysql-connector-java   包加载到项目里了,但是并不在tomcat中

    常规的tomcat部署方式是  直接部署到${TOMCAT_HOME}/webapps下

    但是idea用的tomcat部署不是常规的部署方式:

    CATALINA_HOME是Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录。如果我们想要运行Tomcat的 多个实例,但是不想安装多个Tomcat软件副本。那么我们可以配置多个工作目录,每个运行实例独占一个工作目录,但是共享同一个安装目录 Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。

     

    在这里没有加载mysql-connector-java   包,因此会报错,正确操作是:选中下面的jar包后,右键,put into /WEB-INF/lib,然后就加载到lib中。如果重启后依旧报同样的错,则删除/out和/target 文件夹,再次重启

  • 相关阅读:
    java爬取Excel表格
    drf-view
    django--View
    tornado的Application的一些事儿
    tornado的路由分发
    线程和asyncio的比较
    GIL
    else的使用
    协程
    生成器代替迭代器
  • 原文地址:https://www.cnblogs.com/yaohuiqin/p/9836165.html
Copyright © 2011-2022 走看看