druid连接gbase8s数据库报错空指针

在使用druid 1.2.17以及之后版本中,在连接gbase8s数据库时报错空指针

java.lang.NullPointerException
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1764)
    at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:939)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1463)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1459)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83)

原因在获取数据库类型(dbTypeName)时不支持gbase8s数据库,导致获取类型为null,然后在createPhysicalConnection 中构建数据库连接时直接使用dbTypeName.equals做判断,导致此处空指针,异常传递到上层最终报错空指针

else if (dbTypeName.equals(DbType.sqlserver.name())) {

个人觉得这块代码处理的不太合适,如果要限制数据库类型可以有很多地方或者办法能处理,在前边获取到 dbTypeName =null 就应该给出日志结束调用,而不是在后边突兀的一个空指针异常

解决方案

1 在com.alibaba.druid.util.JdbcUtils的getDriverClassName方法中加入gbase8s支持

else if (rawUrl.startsWith("jdbc:gbasedbt-sqli:")) {
            return "com.gbasedbt.jdbc.Driver";
        }

2 在com.alibaba.druid.util.JdbcUtils的getDbTypeRaw方法加入gbase8s支持

else if (rawUrl.startsWith("jdbc:gbasedbt-sqli:") ) {
            return DbType.gbase8s;
        }

3 在com.alibaba.druid枚举类 DbType 中加入gbase8s支持

gbase8s(0);

针对Spring Boot整合Druid和MyBatis连接GBase 8s数据库的配置,这份《springboot整合druid、mybatis连接gbase8s.doc》文档将提供你所需要的一切信息。文档中详细讲解了如何在Spring Boot项目中集成Druid作为连接池,并且结合MyBatis进行数据操作,同时使用student表作为演示示例。 参考资源链接:[springboot整合druid、mybatis连接gbase8s.doc](https://wenku.youkuaiyun.com/doc/6412b70cbe7fbd1778d48e76?spm=1055.2569.3001.10343) 首先,你需要确保已经在项目中添加了Druid和MyBatis相关的依赖。然后,在Spring Boot配置文件中指定数据源,并配置Druid连接池的相关属性,比如URL、用户名、密码以及初始化大小等。 配置完成后,你需要创建数据源Bean,可以通过Druid提供的DataSourceBuilder来构建。接着,配置MyBatis的SqlSessionFactoryBean,需要指定数据源和mapper xml文件的位置。这样MyBatis就能找到对应的Mapper接口和XML文件进行SQL操作。 最后,使用Spring MVC来创建RESTful风格的接口,并且可以利用Swagger来测试接口以及生成API文档,方便前后端开发和交互。 按照文档中的步骤操作,相信你能够顺利实现Spring Boot项目与GBase 8s数据库的整合,并完成基本的增删改查操作。如果你希望进一步深入了解Spring Boot、Druid、MyBatis以及GBase 8s数据库的高级用法,这份文档将是你不可或缺的学习资源。 参考资源链接:[springboot整合druid、mybatis连接gbase8s.doc](https://wenku.youkuaiyun.com/doc/6412b70cbe7fbd1778d48e76?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值