java.lang.NullPointerException: null
场景:
查询的时候总是空指针,以为是自己的bean的错误改了半天,发现是自己的yml文件问题
java.lang.NullPointerException: null
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011) ~[na:1.8.0_77]
at java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1535) ~[na:1.8.0_77]
at java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:463) ~[na:1.8.0_77]
at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:66) ~[spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1136) ~[tomcat-embed-core-8.5.31.jar:8.5.31]
at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:589) ~[druid-1.1.9.jar:1.1.9]
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:815) [druid-1.1.9.jar:1.1.9]
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1227) [druid-1.1.9.jar:1.1.9]
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1223) [druid-1.1.9.jar:1.1.9]
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90) [druid-1.1.9.jar:1.1.9]
at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:151) [spring-jdbc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115) [spring-jdbc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78) [spring-jdbc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82) [mybatis-spring-1.3.2.jar:1.3.2]
问题解决:
1、查看自己的application.yml配置文件,数据库连接url,driver,username,passwrod这些都没有错或者空格
2、发现没有错误那就是yml配置问题,以下是我成功的配置
spring:
datasource:
url:
username:
password:
driver-class-name: com.mysql.jdbc.Driver
max-wait: 10000
type: com.alibaba.druid.pool.DruidDataSource
#下面为连接池的补充设置,应用到上面所有数据源中
#初始化大小,最小,最大
initialSize: 1
minIdle: 3
maxActive: 20
#配置获取连接等待的超时时间
maxWait: 60000
#配置多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 30000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20