检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发流程 编译并且连接一个libpq的源程序,需要做下面的一些事情: 解压GaussDB-Kernel-VxxxRxxxCxx-xxxxx-64bit-Libpq.tar.gz文件,其中include文件夹下的头文件为所需的头文件,lib文件夹中为所需的libpq库文件。 除libpq-fe
连接参数 表1 连接参数 参数 描述 host 要连接的主机名。如果主机名以斜杠开头,则它声明使用UNIX域套接字通讯而不是TCP/IP通讯;该值就是套接字文件所存储的目录。如果没有声明host,那么默认是与位于/tmp目录(或者安装GaussDB的时候声明的套接字目录)里面的U
开发流程 图1 采用Psycopg2开发应用程序的流程 父主题: 基于Psycopg开发
开发步骤 获取驱动jar包并配置JDK1.8 连接数据库 执行SQL语句 处理结果集 关闭数据库连接 父主题: 基于JDBC开发
开发流程 libpq开发流程如图1所示。 图1 libpq开发流程图 父主题: 基于libpq开发
Psycopg包 准备相关驱动和依赖库。可以从发布包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Python.tar.gz。 解压后有两个文件夹: psycopg2:psycopg2库文件。 lib:lib库文件。 加载驱动。 在使用驱动之前,需要做如下操作:
batchMode设置错误 问题现象 设置url参数batchMode=on且reWriteBatchedInserts=true,使用JDBC批量插入数据,抛出异常,提示绑定参数数量与语句需要的参数数量不一致: bind message supplies * parameters
访问特殊数据类型 ecpg支持numeric、decimal、date、timestamp和interval数据类型。由于这些数据类型的内部结构较为复杂,无法被映射到初级数据类型的宿主变量,因此应用程序通过声明特殊类型的宿主变量以及使用pgtypes库中的函数处理这些特殊类型。p
define和undef指令 嵌入式SQL具有类似于C语言中#define指令: EXEC SQL DEFINE name; EXEC SQL DEFINE name value; EXEC SQL UNDEF name; 示例如下: /* 定义名称 */ EXEC SQL DEFINE
define和undef指令 嵌入式 SQL具有类似于C语言中#define指令: EXEC SQL DEFINE name; EXEC SQL DEFINE name value; EXEC SQL UNDEF name; 示例如下: /* 定义名称 */ EXEC SQL DEFINE
连接数据库(UDS方式) Unix domain socket用于同一主机上不同进程间的数据交换,通过添加junixsocket获取套接字工厂使用。 需要引用的jar包有junixsocket-core-XXX.jar、junixsocket-common-XXX.jar、jun
处理结果集 设置结果集类型 不同类型的结果集有各自的应用场景,应用程序需要根据实际情况选择相应的结果集类型。在执行SQL语句过程中,需要先创建相应的语句对象,而部分创建语句对象的方法提供了设置结果集类型的功能。具体的参数设置如表1所示。涉及的Connection的方法如下: 1 2
java.sql.CallableStatement java.sql.CallableStatement是存储过程执行接口。 表1 对java.sql.CallableStatement的支持情况 方法名 返回值类型 支持JDBC 4 getArray(int parameterIndex)
SQLAllocConnect 在ODBC 3.x版本中,ODBC 2.x的函数SQLAllocConnect已被SQLAllocHandle代替。有关详细信息请参见SQLAllocHandle。 父主题: ODBC接口参考
connection.close() 功能描述 此方法关闭数据库连接。 此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。 原型 connection.close() 参数 无 返回值 无 示例 请参见示例:常用操作。
事务管理 在ecpg缺省模式下,语句只有在EXEC SQL COMMIT发出的时候才被提交,嵌入的SQL接口也支持事务的自动提交(通过EXEC SQL SET AUTOCOMMIT TO ON语句设置自动提交)。在自动提交模式下,每条命令都是自动提交的,除非它们包围在一个明确的事务块里。自动提交模式可以用EXEC
java.sql.PreparedStatement java.sql.PreparedStatement是预处理语句接口。 表1 对java.sql.PreparedStatement的支持情况 方法名 返回值类型 支持JDBC 4 clearParameters() void
javax.naming.Context javax.naming.Context是连接配置的上下文接口。 表1 对javax.naming.Context的支持情况 方法名 返回值类型 支持JDBC 4 bind(Name name, Object obj) void Yes bind(String
batchMode设置错误 问题现象 设置url参数batchMode=on且reWriteBatchedInserts=true,使用JDBC批量插入数据,抛出异常,提示绑定参数数量与语句需要的参数数量不一致: bind message supplies * parameters
connection.close() 功能描述 此方法关闭数据库连接。 此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。 原型 connection.close() 参数 无。 返回值 无。 示例 请参见示例:常用操作。