• 使用druid连接池报错:java.lang.NullPointerException com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1105)


    1.今天在maven项目中按照往常使用druid连接池,在注册界面点击注册后发现报错:

     2.于是打开registUserServlet,发现报错信息如下:

     3.打开自己的druid.properties,配置如下:

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql:///travel
    username=root
    password=root
    initialSize=5
    maxActive=10
    maxWait=3000

    4.跟自己之前的配置进行了一下对比,发现url少了一部分,于是添加上去:

    url=jdbc:mysql:///travel?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

    5.仍然报错,接着看到网上的方法:

    dataSource.driverClassName=com.mysql.cj.jdbc.Driver
    dataSource.validationQuery=select 1
    dataSource.testOnBorrow=true
    dataSource.testWhileIdle=true

    于是在我的drui.properties加入这些参数:

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql:///travel?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    username=root
    password=root
    initialSize=5
    maxActive=10
    maxWait=3000
    
    validationQuery=select 1
    testOnBorrow=true
    testWhileIdle=true

     6.再次尝试发现仍然是相同的错误,于是去查看是否是自己的依赖jar包有错,不知道是不是mysql8.0要匹配相应版本的mysql-connector-java.jar,于是将5.6.1换成了8.0.15版本的,检查之后发现没有错误。

     7.因为之前一直搞不明白com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别,于是去网上查了一下:

    com.mysql.jdbc.Driver 是 mysql-connector-java 5及5之前的,

    com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6及6之后的的。

    这里我的版本是5之后,所以加入了cj。问题解决了!!!根本原因就是mysql8.0与mysql-connector-java.jar版本一定要匹配!!!务必牢记!

  • 相关阅读:
    不同主机的docker容器互相通信
    Understanding Docker
    Docker入门
    使用Docker在本地搭建Hadoop分布式集群
    Cassandra联手Spark 大数据分析将迎来哪些改变?
    Apache Spark技术实战之6 --Standalone部署模式下的临时文件清理
    大数据计算平台Spark内核全面解读
    Ubuntu下导入PySpark到Shell和Pycharm中(未整理)
    别老扯什么hadoop,你的数据根本不够大
    spark on yarn 集群部署
  • 原文地址:https://www.cnblogs.com/iceywu/p/12292717.html
Copyright © 2020-2023  润新知