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