com.alibaba.druid.util.JdbcUtils类中getDriverClassName方法能否增加 jdbc:opengauss 驱动? 如不能,能否在433行中 rawUrl.startsWith("jdbc:postgresql:") 后加 ‘’‘ || rawUrl.startsWith("jdbc:opengauss:") ’‘’?
原提问者GitHub用户nullMoneyException
com.alibaba.druid.util.JdbcUtils 类是 Druid 连接池中的一个工具类,主要用于获取和操作 JDBC 驱动的相关信息。在该工具类中,可以通过调用 isMySqlDriver()、isOracleDriver() 等方法判断当前使用的 JDBC 驱动类型。
com.alibaba.druid.util.JdbcUtils类中的getDriverClassName方法是用来获取数据库驱动类名的方法,它会根据传入的url字符串中的协议部分来判断使用哪种数据库驱动。如果url字符串中包含了"jdbc:postgresql:"或者"jdbc:opengauss:",则该方法会返回对应的数据库驱动类名。
druid-1.2.12版本已发布,请帮忙用新版本验证
https://github.com/alibaba/druid/releases/tag/1.2.12
原回答者GitHub用户wenshao
根据您的描述,您希望在 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" 作为驱动类名。
请注意,在修改源代码之前,最好先备份原始文件,并确保您有适当的开发和测试环境来验证这些更改。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。