默认分类,java开发,存储过程
GBase 8s、GBase 8t在java环境中的开发。

JayDeBeApi对GBase 8s数据库数据类型的支持

本文基于GBase 8s V8.8 3.6.2_2版本编写, 是对原文档:https://gbasedbt.com/index.php/archives/459/ 的更新。
常用的数据类型如下:
GBase 8s数据库数据类型参考:https://gbasedbt.com/index.php/archives/628/

1, 字符类型

内置字符类型包括:char, nchar, varchar, nvarchar, lvarchar, varchar2, nvarchar2和clob2
CHARACTER(n) 和 CHARACTER VARYING(n)这样的别名同样支持
启用SQLMODE=Oralce,即Oracle兼容模式

阅读全文»

GBase 8s数据类型与java.sql.Types对应关系

GBase 8s数据类型与java.sql.Types对应关系

对应版本:3.6.3_3

jdbc类型名称IfxTypejava.sql.Typejava.sql类型名称
CHAR01CHAR
SMALLINT15SMALLINT
INT24INTEGER
FLOAT38DOUBLE
SMALLFLOAT47REAL
DECIMAL53DECIMAL
SERIAL64INTEGER
DATE791DATE
MONEY83DECIMAL
NULL90NULL
DATETIME HOUR TO SECOND1092TIME
DATETIME YEAR TO SECOND1093TIMESTAMP
BYTE11-4LONGVARBINARY
TEXT12-1LONGVARCHAR
VARCHAR1312VARCHAR
INTERVAL141CHAR
NCHAR151CHAR
NVARCHAR1612VARCHAR
INT817-5BIGINT
SERIAL818-5BIGINT
SET191111 | 2003OTHER | ARRAY
MULTISET201111 | 2003OTHER | ARRAY
LIST211111 | 2003OTHER | ARRAY
ROW222002STRUCT
COLLECTION23
ROWREF24
UDTVAR402000JAVA_OBJECT
UDTFIXED412000JAVA_OBJECT
REFSERIAL842
LVARCHAR43-1LONGVARCHAR
SENDRECV442000JAVA_OBJECT
BOOLEAN4516BOOLEAN
IMPEXP462000JAVA_OBJECT
IMPEXPBIN472000JAVA_OBJECT
SQLUDRDEFAULT48
UNKNOWN49
BIGINT52-5BIGINT
BIGSERIAL53-5BIGINT
MAX54
VARCHAR26363
NVARCHAR26464
TIMESTAMP WITH TIME ZONE652014
CLOB1012005CLOB
BLOB1022004BLOB
CURSOR2100
-2BINARY
-7BIT
6FLOAT
2NUMERIC
-6TINYINT
-3VARBINARY
2001DISTINCT
2006REF
70DATALINK
-9NVARCHAR
2011NCLOB
2009SQLXML
2012REF_CURSOR
2013TIME_WITH_TIMEZONE

备注:
1,此文档基于jdbc包3.6.3_3和数据库版本3.6.3_3;
2,JSON,BSON,RAW,CLOB2等别名参考实际类型。

更新日期:2025-10-24

Kylin V10SP1桌面版下GBase 8s java udr异常处理

同样的GBase 8s数据库版本,自定义的java udr在Kylin V10SP1 服务器版(aarch64架构)下创建、运行正常,而在Kylin V10SP1 桌面版(aarch64架构)下时创建正常但运行UDR异常,报错如下:

(38000) - Unknown throwable: (java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.CurveDB).
Error in line 1
Near character position 62

阅读全文»

在mybatis-plus中增加对GBase 8s的支持

在mybatis-plus 3.4.3.2版本之后已经增加了对GBase 8s的支持(使用GBASEDBT类型),在3.5.2版本中变更类型为GBASE8S。如果使用的是其它版本,按照以下进行修改。

mybatis-plus-annotation模块

1, 在 com.baomidou.mybatisplus.annotation.DbType.java 类中增加

    GBASEDBT("gbasedbt", "南大通用安全数据库(GBase 8s)"),

注册GBase 8s的数据库类型,名称为GBASEDBT

阅读全文»

GBase 8s数据库JDBC连接字符串

连接字符串格式

JDBC连接字符串的完整格式:

>>-jdbc:gbasedbt-sqli://-hostname:portnum--/database_name:------>

>--+--------------------------------+--------------------------->
   '-USER=userid;-PASSWORD=password-'   

>--+----------------------------+------------------------------->
   '-GBASEDBTSERVER=servername;-'   

>--+-----------------------------------------------------------+-><
   |                                           .-;-----------. |   
   |                                           V             | |   
   '-CSM=(SSO=database_server@realm,ENC=true)}---;name=value-+-'  

阅读全文»

GBase 8s 传输加密SSL配置

1. 概述

数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.8 3.0.0_1,操作系统为CentOS 7.8编写。

阅读全文»

GBase 8s 编写使用UDR(C/Java)

GBase 8s数据库支持C和JAVA写的用户自定义例程(UDR),以扩展用户对数据库的操作的功能。
以下我们分别以简单的例子介绍C UDR和Java UDR。

C UDR

C UDR使用C语言为基础开发。
参考两个文档:《用户定义例程和数据类型开发者指南》和《DataBlade开发者工具用户指南》

1, 编写代码,示例使用简单的Hello.c

#include <stdio.h>

char *Hello(char *message )
{
    return(message);
}

main()
{
    char *message = "Hello World!";
    printf("%s\n", Hello(message));
}

阅读全文»