开发者社区> 问答> 正文

com.alibaba.druid.util.JdbcUtils中能否增加openGauss驱动?

com.alibaba.druid.util.JdbcUtils类中getDriverClassName方法能否增加 jdbc:opengauss 驱动? 如不能,能否在433行中 rawUrl.startsWith("jdbc:postgresql:") 后加 ‘’‘ || rawUrl.startsWith("jdbc:opengauss:") ’‘’?

原提问者GitHub用户nullMoneyException

展开
收起
山海行 2023-07-05 17:59:54 325 0
5 条回答
写回答
取消 提交回答
  • 图片.png
    加载opengauss驱动的时候报错。。
    opengauss版本:图片.png

    2023-11-13 14:45:24
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    com.alibaba.druid.util.JdbcUtils 类是 Druid 连接池中的一个工具类,主要用于获取和操作 JDBC 驱动的相关信息。在该工具类中,可以通过调用 isMySqlDriver()、isOracleDriver() 等方法判断当前使用的 JDBC 驱动类型。

    2023-07-30 21:19:38
    赞同 展开评论 打赏
  • com.alibaba.druid.util.JdbcUtils类中的getDriverClassName方法是用来获取数据库驱动类名的方法,它会根据传入的url字符串中的协议部分来判断使用哪种数据库驱动。如果url字符串中包含了"jdbc:postgresql:"或者"jdbc:opengauss:",则该方法会返回对应的数据库驱动类名。

    2023-07-09 10:16:08
    赞同 展开评论 打赏
  • druid-1.2.12版本已发布,请帮忙用新版本验证

    https://github.com/alibaba/druid/releases/tag/1.2.12

    原回答者GitHub用户wenshao

    2023-07-06 10:42:08
    赞同 展开评论 打赏
  • 根据您的描述,您希望在 com.alibaba.druid.util.JdbcUtils 类的 getDriverClassName 方法中添加对 "jdbc:opengauss" 驱动的支持。看起来目前该方法只检查了以 "jdbc:postgresql:" 开头的 rawUrl

    要实现您的需求,可以按照您提供的方式修改代码。您可以在代码的 433 行后添加一个条件来判断 rawUrl 是否以 "jdbc:opengauss:" 开头。以下是示例修改的代码:

    if (rawUrl.startsWith("jdbc:postgresql:") || rawUrl.startsWith("jdbc:opengauss:")) {
        driverClassName = "org.postgresql.Driver";
    } else if (rawUrl.startsWith("jdbc:mysql:")) {
        driverClassName = "com.mysql.jdbc.Driver";
    } else if (rawUrl.startsWith("jdbc:mariadb:")) {
        driverClassName = "org.mariadb.jdbc.Driver";
    } else if (rawUrl.startsWith("jdbc:oracle:")) {
        driverClassName = "oracle.jdbc.driver.OracleDriver";
    } else if (rawUrl.startsWith("jdbc:sqlserver:")) {
        driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    } else if (rawUrl.startsWith("jdbc:sybase:Tds:")) {
        driverClassName = "com.sybase.jdbc2.jdbc.SybDriver";
    } else if (rawUrl.startsWith("jdbc:jtds:sqlserver:")) {
        driverClassName = "net.sourceforge.jtds.jdbc.Driver";
    } else if (rawUrl.startsWith("jdbc:fake:") || rawUrl.startsWith("jdbc:mock:")) {
        driverClassName = "com.alibaba.druid.mock.MockDriver";
    }
    

    这样修改后,当 rawUrl 以 "jdbc:opengauss:" 开头时,将会使用 "org.postgresql.Driver" 作为驱动类名。

    请注意,在修改源代码之前,最好先备份原始文件,并确保您有适当的开发和测试环境来验证这些更改。

    2023-07-05 19:14:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载