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

2, 设置数据库的JVP环境

ONCONFIG配置文件涉及到JVP的相关参数

1)VPCLASS开启jvp,用于处理Java UDR,默认不开启,取消前面的注释符'#',如果有较多调用,可增加jvp的数量

VPCLASS jvp,num=1  

2)JVPARGS增加 -Dfile.encoding=UTF-8(根据实际需要增加与否,即直接java执行的参数),JVPCLASSPATH增加judr.jar

JVPARGS -Dcom.ibm.tools.attach.enable=no;-Dfile.encoding=UTF-8  
JVPCLASSPATH $GBASEDBTDIR/extend/krakatoa/krakatoa.jar:$GBASEDBTDIR/extend/krakatoa/jdbc.jar:$GBASEDBTDIR/udr/judr.jar

重启数据库生效,通过onstat -g glo确认已经增加的jvp。

3, 创建相应的例程

示例:

drop function if exists ifnull(lvarchar,lvarchar);
create dba function ifnull(lvarchar,lvarchar)
returns lvarchar
with (not variant, handlesnulls)
  external name 'com.gbasedbt.judr.mysql.MysqlFunc.ifnull(java.lang.String,java.lang.String)'
language java;

其中function中的 ifnull(lvarchar,lvarchar)应与Java中的定义相对应;
external name 为java中的名称: java类名.方法
使用:

select ifnull(null,'abc') from dual;

4, Java Udr 函数说明

Math类
-- conv 进制转换函数

function conv(lvarchar,int,int)

-- rand 随机函数(1-1亿的随机数)

function rand()

-- random 随机函数(0-1之间的随机数)

function random()

-- randnum 指定范围内的随机数

function randomnum(int,int)

HEX
-- decodeHex
-- 使用默认字符集UTF-8

function decodeHex(lvarchar)

-- 第二个参数指定字符集,如UTF-8,GBK

function decodeHex(lvarchar,lvarchar)

-- encodeHex
-- 使用默认字符集UTF-8

function encodeHex(lvarchar)

-- 第二个参数指定字符集,如UTF-8,GBK

function encodeHex(lvarchar,lvarchar)

CRYPT
-- decodeBase64
-- 输出ascii结果

function decodeBase64(lvarchar)

-- decodeBase64Hex
-- 输出hex结果

function decodeBase64Hex(lvarchar)

-- decryptAES (PKCS5)
-- 指定8位secret

function decryptAES(lvarchar,lvarchar)

-- 使用默认的8位secret

function decryptAES(lvarchar)

-- decryptDES (PKCS5)
-- 指定8位secret

function decryptDES(lvarchar,lvarchar)

-- 使用默认的8位secret

function decryptDES(lvarchar)

-- encodeBase64
-- 输出ascii结果

function encodeBase64(lvarchar)

-- encodeBase64Hex
-- 输出hex结果

function encodeBase64Hex(lvarchar)

-- encodeMD5

function encodeMD5(lvarchar)

-- encryptAES
-- 指定8位secret

function encryptAES(lvarchar,lvarchar)

-- 使用默认的8位secret

function encryptAES(lvarchar)

-- encryptDES
-- 指定8位secret

function encryptDES(lvarchar,lvarchar)

-- 使用默认的8位secret

function encryptDES(lvarchar)

-- sm4_decrypt
-- 指定16位secret

function decryptSM4(lvarchar,lvarchar)

-- 使用默认的16位secret

function decryptSM4(lvarchar)

-- sm4_encrypt
-- 指定16位secret

function encryptSM4(lvarchar,lvarchar)

-- 使用默认的16位secret

function encryptSM4(lvarchar)

MySQL兼容
-- ascii

function jascii(lvarchar)

-- chr

function jchr(int)

-- randomstr,随机字符串

function randomstr(int)

-- 指定大小写

function randomstr(lvarchar,int)

-- uuid

function juuid()

-- now

function now()

-- unix_timestamp

function unix_timestamp()
-- 指定日期时间字符串  
function unix_timestamp(lvarchar)

-- from_unixtime

function from_unixtime(int)

-- ifnull

function ifnull(lvarchar,lvarchar)

-- find_in_set 兼容函数

function find_in_set(lvarchar,lvarchar)

-- format 兼容函数

function format(float,int)

-- repeat 兼容函数

function repeat(lvarchar,int)

说明
gbasedbt-judr-x.x.x.jar中包含的函数,具体参考javadoc

标签: Java UDR, SM4, ASE, DES

添加新评论