数据库JDBC版本:GBase 8s JDBC V8.8 3.3.0_3
Mybatis-Plus版本: 3.4.3.2
JDK版本: jdk1.8.0_201
在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
JayDeBeApi对数据类型的支持
JayDeBeApi对数据类型的支持
常用的数据类型如下:
字符类型
内置字符类型包括:char, nchar, varchar, nvarchar 和lvarchar
CHARACTER(n) 和 CHARACTER VARYING(n)这样的别名同样支持
参考代码:test_string_type.py
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 Java UDR安装说明
创建Java UDR过程
1, 将共享库gbasedbt-judr-x.x.x.jar 放置于数据库服务器上
比如,放到$GBASEDBTDIR/udr 目录下,并改名为judr.jar
则gbasedbt-judr-x.x.x.jar的位置为$GBASEDBTDIR/udr/judr.jar
下载地址:https://docs.gbasedbt.com/Java_Udr/install/gbasedbt-judr-1.0.0.jar
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
最终的项目目录结构
Hibernate操作GBase 8s数据库示例
这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Hibernate 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。
使用到的工具及组件包括:
Eclipse
JDK-1.8
hibernate-5.3.12 及方言包
Hibernate-5.3.12 及对应的GBase 8s Dialect
GBase 8s 数据库及JDBC驱动2.0.1a2_2
最终的项目目录结构
在GBase 8s上使用java udr实现Oracle兼容的加密解密功能
最近碰到客户从Oracle迁移到GBase 8s使用到字段加密解密功能,使用到了Utl_raw.cast_to_varchar2、Utl_raw.cast_to_raw、Utl_encode.base64_decode、dbms_obfuscation_toolkit.desdecrypt等oracle特有函数,这些与GBase 8s自带的加密函数DECRYPT_CHAR并不兼容。客户暂时只能考虑使用程序加密的方式实现。
对于GBase 8s数据库来说,其实也可以使用自定义例程(UDR,可以是基于C,也可能是基于Java)的方式来扩展函数使用。以下我们就以这个加密解密功能来说明Java UDR的创建与使用。