首页 > 其他分享 >openGauss JDBC配置

openGauss JDBC配置

时间:2024-05-16 18:55:44浏览次数:22  
标签:autocommit 建议 JDBC 配置 openGauss 连接 连接池

JDBC配置

目前,openGauss相关的第三方工具都是通过JDBC进行连接的,此部分将介绍工具配置时的注意事项。

连接参数

  • 【关注】第三方工具通过JDBC连接openGauss时,JDBC向openGauss发起连接请求,会默认添加以下配置参数,详见JDBC代码ConnectionFactoryImpl类的实现。

    params = {
    { "user", user },
    { "database", database },
    { "client_encoding", "UTF8" },
    { "DateStyle", "ISO" },
    { "extra_float_digits", "3" },
    { "TimeZone",  createPostgresTimeZone() },
    };
    

    这些参数可能会导致JDBC客户端的行为与gsql客户端的行为不一致,例如,Date数据显示方式、浮点数精度表示、timezone显示。

    如果实际期望和这些配置不符,建议在java连接设置代码中显式设定这些参数。

  • 【建议】通过JDBC连接数据库时,会设置extra_float_digits=3,gsql中设置为extra_float_digits=0,可能会使同一条数据在JDBC显示和gsql显示的精度不同。

  • 【建议】对于精度敏感的场景,建议使用numeric类型。

  • 【建议】通过JDBC连接数据库时,应该保证下面三个时区设置一致:

    • JDBC客户端所在主机的时区。

    • openGauss数据库实例所在主机的时区。

    • openGauss数据库实例配置过程中时区。

      说明:

      时区设置相关的操作,请参考《安装指南》中“初始配置 > 同步系统时间”章节内容。

fetchsize

【关注】在应用程序中,如果需要使用fetchsize,必须关闭autocommit。开启autocommit,会令fetchsize配置失效。

autocommit

【建议】在JDBC向openGauss申请连接的代码中,建议显式打开autocommit开关。如果基于性能或者其它方面考虑,需要关闭autocommit时,需要应用程序自己来保证事务的提交。例如,在指定的业务SQL执行完之后做显式提交,特别是客户端退出之前务必保证所有的事务已经提交。

释放连接

【建议】推荐使用连接池限制应用程序的连接数。每执行一条SQL就连接一次数据库,是一种不好SQL的编写习惯。

【建议】在应用程序完成作业任务之后,应当及时断开和openGauss的连接,释放资源。建议在任务中设置session超时时间参数。

【建议】使用JDBC连接池,在将连接释放给连接池前,需要执行以下操作,重置会话环境。否则,可能会因为历史会话信息导致的对象冲突。

  • 如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须使用“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”将连接的状态清空。
  • 如果使用了临时表,那么在将连接归还连接池之前,必须将临时表删除。

CopyManager

【建议】在不使用ETL工具,数据入库实时性要求又比较高的情况下,建议在开发应用程序时,使用openGauss JDBC驱动的copyManger接口进行微批导入。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:autocommit,建议,JDBC,配置,openGauss,连接,连接池
From: https://www.cnblogs.com/techbing/p/18196501

相关文章

  • openGauss lo_close
    lo_close功能描述关闭一个大对象描述符。原型intlo_close(PGconn*conn,intfd);参数表1lo_close参数关键字参数说明conn一个数据库连接fd文件描述符返回值int:成功时返回1,失败时返回-1。示例请参见示例章节。详情查看:https://opengauss.org......
  • openGauss Linux下配置数据源
    Linux下配置数据源将openGauss提供的ODBCDRIVER(psqlodbcw.so)配置到数据源中便可使用。配置数据源需要配置“odbc.ini”和“odbcinst.ini”两个文件(在编译安装unixODBC过程中生成且默认放在“/usr/local/etc”目录下),并在服务器端进行配置。操作步骤获取unixODBC源码包。获取......
  • openGauss lo_export
    lo_export功能描述把一个大对象导出到一个服务器端的操作系统文件。原型intlo_export(PGconn*conn,OidlobjId,constchar*filename);参数表1lo_export参数关键字参数说明conn一个数据库连接lobjId要导出的大对象的OIDfilename要导出的文件路......
  • openGauss lo_create
    lo_creat功能描述创建一个大对象。原型Oidlo_creat(PGconn*conn,intmode);参数表1lo_creat参数关键字参数说明conn一个数据库连接mode指定只读、只写或者读写,已弃用、会被忽略,为兼容旧版本而保留参数返回值oid:返回值是分配给新大对象的OID或I......
  • openGauss lo_lseek
    lo_lseek功能描述改变一个大对象描述符的当前读或写位置。原型intlo_lseek(PGconn*conn,intfd,intoffset,intwhence);参数表1lo_lseek参数关键字参数说明conn一个数据库连接fd文件描述符offset将文件描述符的当前位置指针移动到由offset指......
  • openGauss lo_import
    lo_import功能描述将一个服务器端的操作系统文件导入成一个大对象。原型Oidlo_import(PGconn*conn,constchar*filename);参数表1lo_import参数关键字参数说明conn一个数据库连接filename要导入的文件的路径返回值oid:导入的大对象分配到的OID......
  • openGauss lo_tell
    lo_tell功能描述得到一个大对象描述符的当前读或写位置。原型intlo_tell(PGconn*conn,intfd);参数表1lo_tell参数关键字参数说明conn一个数据库连接fd文件描述符返回值int:失败时返回值为-1。lo_tell64功能描述将一个(可能超过2GB大小)大对......
  • openGauss lo_read
    lo_read功能描述从一个大对象读取数据。原型intlo_read(PGconn*conn,intfd,char*buf,size_tlen);参数表1lo_read参数关键字参数说明conn一个数据库连接fd文件描述符buf从大对象描述符中读取最多len字节到buflen要读取的数据长度......
  • openGauss lo_open
    lo_open功能描述打开一个现有的大对象进行读写。原型intlo_open(PGconn*conn,OidlobjId,intmode);参数表1lo_open参数关键字参数说明conn一个数据库连接lobjId要打开的大对象的OIDmode控制打开对象后只读、只写或者读写返回值int:成功......
  • Maven安装与配置,Idea配置Maven
    maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。一、下载Maven选择你需要的maven版本下载:官网下载传送门我使用的是3.6.1版本:maven-3.6.1-bin.zip二、安装把下载好的maven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹,如:三、配置环境变量1.右键此电脑......