java开发
GBase 8s、GBase 8t在java环境中的开发。

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

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

对应版本:3.6.2_2

GBase 8s类型类型colTypesql_data_typejava.sql.Typesjava类型名称
SMALLINT115SMALLINT
INTEGER224INTEGER
BIGINT5217-5BIGINT
INT81717-5BIGINT
SMALLFLOAT447REAL
FLOAT338DOUBLE
DECIMAL553DECIMAL
MONEY853DECIMAL
CHAR001CHAR
NCHAR1501CHAR
VARCHAR131312VARCHAR
NVARCHAR161312VARCHAR
VARCHAR2636363未定义
NVARCHAR2646464未定义
LVARCHAR4043-1LONGVARCHAR
BOOLEAN414516BOOLEAN
TEXT12101-1LONGVARCHAR  
BYTE11102-4LONGVARBINARY  
CLOB411012005CLOB
BLOB411022004BLOB
SERIAL624INTEGER
SERIAL81817-5BIGINT
BIGSERIAL5317-5BIGINT
DATETIME YEAR TO SECOND101093TIMESTAMP
DATETIME HOUR TO SECOND101092TIME
DATE7791DATE
RAW40432000JAVA_OBJECT
TIMESTAMP WITH TIME ZONE6592014TIMESTAMP_WITH_TIMEZONE
JSON40432000JAVA_OBJECT
BSON40432000JAVA_OBJECT
INTERVAL1401CHAR
LIST21491111OTHER
SET(LVARCHAR)19431111OTHER
MULTISET(SENDRECEIVE)20491111OTHER
CLOB24043-1LONGVARCHAR
NULL9
ROW22222002STRUCT
COLLECTION23
ROWREF24
REFSERIAL842

备注:
1,此文档基于jdbc包3.6.1_2和数据库版本3.6.2_2;
2,coltype为40(可变长)和41(不可变长)的为Opaque数据类型;
3,sql_data_type指的是基于数据类型,与coltype或java.sql.Types类型

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));
}


阅读全文»

Mybatis操作GBase 8s数据库示例

  这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Mybatis 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。

使用到的工具及组件包括:

Eclipse
JDK-1.8
Mybatis-3.4.5
GBase 8s 数据库及JDBC驱动2.0.1a2_2

最终的项目目录结构

项目结构图1.png




阅读全文»