更新时间:2024-06-03 GMT+08:00

兼容性参考

JDBC兼容性包

从发布包中获取。包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Jdbc.tar.gz。

解压后JDBC的驱动jar包:

  • gsjdbc4.jar:主类名为“org.postgresql.Driver”,数据库连接的URL前缀为“jdbc:postgresql”,该驱动包适用于从PostgreSQL迁移业务的场景,驱动类和加载路径与迁移前保持一致,但接口支持情况不完全一致,未支持的接口需要业务侧进行调整。
  • gsjdbc200.jar:该驱动包适用于从Gauss200迁移业务的场景,驱动类和加载路径与迁移前保持一致,但接口支持情况不完全一致,未支持的接口需要业务侧进行调整。
  • opengaussjdbc.jar:主类名为“com.huawei.opengauss.jdbc.Driver”,数据库连接的URL前缀为“jdbc:opengauss”。如果遇到同一JVM进程内需要同时访问PostgreSQL及GaussDB的场景,请使用此驱动包。
  • 各驱动包只是驱动类加载路径和url前缀不同,接口功能相同。
  • 不能使用gsjdbc4的驱动包操作PostgreSQL数据库,虽然部分版本能够建连成功,但部分接口行为与PostgreSQL JDBC不同,可能导致未知错误。
  • 不能使用PostgreSQL的驱动包操作GaussDB数据库,虽然部分版本能够建连成功,但部分接口行为与GaussDB JDBC不同,可能导致未知错误。

Go驱动兼容

  • 由于数据库的Go驱动当前不适配业界成熟ORM框架(比如xorm),在创建数据库连接时传入的驱动名称兼容“postgres”和“postgresql”。
  • 设置环境变量GOENV_REGIST_ALL=false后,支持与PostgreSQL的Go驱动并存;若不设置此参数或设置GOENV_REGIST_ALL为true且go驱动代码中依赖PostgreSQL的Go驱动则会报错。

ecpg兼容

ecpg提供使用URL连接方式的连接语法,不仅支持“gaussdb”,还兼容支持“postgresql”。

连接语法:

EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];
其中target支持“postgresql”方式如下:
  • tcp:postgresql://hostname[:port][/dbname][?options]
  • unix:postgresql://hostname[:port][/dbname][?options]