com.alibaba.druid.pool.DruidDataSourc:{dataSource-1} init error java.lang.NullPointerException: null

博主在解决数据库连接问题时排除了ojdbc驱动、pom.xml配置、application.yml格式以及Druid配置等问题。实际问题是数据库密码解密算法有误,注释掉不必要的解密代码后解决了问题。

工作中遇到的小问题,记录一下子。
在这里插入图片描述

网上看了很多帖子,也实验了很多办法,下面举几个栗子:
1,缺少ojdbc和数据库驱动的包(可以自己在maven自己检查一下)或者版本太老,更换版本试试。(不符合本人情况)
2,在pom.xml中缺少resource 无法读取配置文件(下面添加自己的哈!)

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

(亦不符合本人情况)

3,数据库配置application.yml有问题(格式或者缩进)

spring:
  datasource:
#    MySQL sample
#    url: jdbc:mysql://192.168.56.102:3306/redb_hx2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
#    driver-class-name: com.mysql.jdbc.Driver
#    username: root
#    password: fKkCPSnL290EJlbsZ+nE7A==
#    Oracle sample
    url: jdbc:oracle:thin:@localhost:1521/orcl
    driver-class-name: oracle.jdbc.driver.OracleDriver
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 8
      min-idle: 1
      max-active: 20
      max-wait: 60000

(还是没有解决问题)
4,com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:589)中创建连接数据库的驱动时空指针,配置类有问题

   @Bean
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource dataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;
    }

prefix少了druid节点,正确配置为

@ConfigurationProperties(prefix="spring.datasource.druid")

数据库配置参考上面 ^
5,好了现在这里在这里插入图片描述
说说本人实际情况

数据库加密解密算法存在问题,这边大哥让我把解密部分给注释掉。但是本人憨憨,其他类的解密方法没有注释掉,导致错误。

	public void setProperties(Properties properties) {
		super.setProperties(properties);
		//用加密秘钥解密密文密码
//		String key = "ExpsKeys";
		String pwd = properties.getProperty("password");
		if(StringUtils.isNoneBlank(pwd)) {
//			byte[] readPass = CommBase64Util.dencrypt(Base64.decode(pwd), key.getBytes());
//			String  linkPasswd = new String(readPass);
			//String  linkPasswd = new String(Base64.decode(pwd.getBytes()));
/*			String  linkPasswd = new String(SecurityUtil.dencryptWithAES(Base64.decode(pwd.getBytes())));
			setPassword(linkPasswd.toCharArray());*/
			logger.debug("数据库密码解密完成");
		}else {
			logger.error("取数据库密码属性为空,异常");
		}
	}
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysConfigServiceImpl': Invocation of init method failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null ### The error may exist in URL [jar:file:/C:/Users/Tokiame/.m2/repository/com/ruoyi/ruoyi-system/4.8.1/ruoyi-system-4.8.1.jar!/mapper/system/SysConfigMapper.xml] ### The error may involve com.ruoyi.system.mapper.SysConfigMapper.selectConfigList ### The error occurred while executing a query ### Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:209) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:710) ... 93 common frames omitted Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null ### The error may exist in URL [jar:file:/C:/Users/Tokiame/.m2/repository/com/ruoyi/ruoyi-system/4.8.1/ruoyi-system-4.8.1.jar!/mapper/system/SysConfigMapper.xml] ### The error may involve com.ruoyi.system.mapper.SysConfigMapper.selectConfigList ### The error occurred while executing a query ### Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy83.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:142) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy2/jdk.proxy2.$Proxy94.selectConfigList(Unknown Source) at com.ruoyi.system.service.impl.SysConfigServiceImpl.loadingConfigCache(SysConfigServiceImpl.java:155) at com.ruoyi.system.service.impl.SysConfigServiceImpl.init(SysConfigServiceImpl.java:34) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ... 105 common frames omitted Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null ### The error may exist in URL [jar:file:/C:/Users/Tokiame/.m2/repository/com/ruoyi/ruoyi-system/4.8.1/ruoyi-system-4.8.1.jar!/mapper/system/SysConfigMapper.xml] ### The error may involve com.ruoyi.system.mapper.SysConfigMapper.selectConfigList ### The error occurred while executing a query ### Cause: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 121 common frames omitted Caused by: java.lang.NullPointerException: Cannot invoke "com.alibaba.druid.DbType.ordinal()" because "dbType" is null at com.alibaba.druid.wall.WallFilter.init(WallFilter.java:106) at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:848) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1462) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1458) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80) at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:345) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:89) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:64) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:333) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) ... 128 common frames omitted我快失去耐心了
11-22
21:28:16.578 ERROR --- [tionPool-Create-651100072] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/seata?useUnicode=true&rewriteBatchedStatements=true&serverTimezone=UTC, errorCode 0, state 08001 ==> com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_202] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_202] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_202] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_202] at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) ~[na:na] at com.mysql.jdbc.Util.getInstance(Util.java:372) ~[na:na] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:958) ~[na:na] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937) ~[na:na] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) ~[na:na] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872) ~[na:na] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2316) ~[na:na] at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069) ~[na:na] at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) ~[na:na] at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) ~[na:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_202] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_202] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_202] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_202] at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) ~[na:na] at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) ~[na:na] at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) ~[na:na] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774) ~[druid-1.1.23.jar:1.1.23] Caused by: java.lang.NullPointerException: null at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2989) ~[na:na] at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1873) ~[na:na] at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1802) ~[na:na] at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206) ~[na:na] at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2239) ~[na:na] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270) ~[na:na] ... 13 common frames omitted <==
10-24
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值