系统环境
操作系统:RHEL 6U4 64bit
数据库版本:GBase 8t Database Server Version 12.10.FC4G1AEE_1.6.3.54
GBase 8t数据库支持C和JAVA写的用户自定义例程(UDR),以扩展用户对数据库的操作的功能。以下简单示例创建Java UDR的方法。
1,如果数据库没有开启jvp,增加JVP虚拟处理器,用于处理Java UDR
onmode -p +1 jvp
注:测试环境中增加1个jvp vp足够使用
并通过onstat -g glo确认已经增加的jvp
2,编写测试使用的HelloWorld.java,并编译打包成JAR
public class HelloWorld {
public static void main(String[] args){
System.out.println(HelloWorld.Hello("Java UDR: Hello World!"));
}
public static String Hello(String str){
return str;
}
}
GBase 8t当前使用的JRE是jre1.6,故编译java程序应使用jdk1.6版本
javac HelloWorld.java
jar -cf HelloWorld.jar HelloWorld.class
3,在数据库中注册jar
execute procedure install_jar("file:/home/gbase/udr/HelloWorld.jar", "HelloWorld");
install_jar的参数:jar的路径,安装后的名称。
4,创建相应的例程
create function HelloWorld(lvarchar)
returns lvarchar
external name 'HelloWorld:HelloWorld.Hello(java.lang.String)'
language java;
其中function中的 HelloWorld(lvarchar)应与Java中的定义相对应;
external name 为java中的名称: 安装后的名称:java类名.方法
之后即可正常使用Java UDR
execute function helloworld("使用JAVA UDR扩展数据库功能");
(expression) 使用JAVA UDR扩展数据库功能