在Oracle中集成java程序的经验之谈!

这段时间为公司内部的数据处理开发了一个工具,牵涉到在Oracle中集成java应用,总结了一些经验,以供大家参考了!

程序分两部分,前端界面由VB/VC开发,主要实现数据处理配置及常规记录运算,这部分没有什么好说的了。

后台以Oracle为数据基础处理托管平台,在数据处理过程中,需要对一些名称、地址什么的进行摘要提取、拆分等等。这部分是以java实现的,loadjava到Oracle中做成相应的处理函数。

在这里,如何在Oracle中集成java大家可以在网上轻松找到,这里就不详细说明了。主要着重说明一些需要注意的细节:

1:在loadjava的时候,最好加上“-genmissing”参数,这样,在对应的jar或java文件上传后,Oracle会马上加载每个类,如果有错误,会马上在命令行中详细列出,从而避免了在运行中出错。运行中出错有时候报错信息很粗陋,很难排查!

2:如果在java程序中牵涉到对系统环境变量、磁盘、IO通道等资源的读写,一定要先给相关用户授权,一般如下:

<textarea cols="50" rows="15" name="code" class="java">xecute dbms_java.grant_permission( 'XSDPP','SYS:java.util.PropertyPermission', 'dic.dir', 'write' ) execute DBMS_JAVA.grant_permission('XSDPP', 'SYS:java.io.FilePermission', '&lt;&gt;', 'read ,write, execute, delete'); execute DBMS_JAVA.grant_permission('XSDPP', 'java.io.FilePermission', '&lt;&gt;', 'read ,write, execute, delete'); execute Dbms_Java.Grant_Permission('XSDPP', 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', ''); execute Dbms_Java.Grant_Permission('XSDPP', 'SYS:java.lang.RuntimePermission', 'readFileDescriptor', ''); execute Dbms_Java.Grant_Permission('XSDPP','java.io.FilePermission','&lt;&lt;ALL FILES&gt;&gt;','read,write,execute,delete'); execute Dbms_Java.Grant_Permission('XSDPP','java.lang.RuntimePermission','*','writeFileDescriptor'); execute Dbms_Java.grant_permission('XSDPP','java.net.SocketPermission','*:*','accept,connect,listen,resolve');</textarea>

3:java代码的版本:9i数据库只支持jdk1.3,10g支持1.4,11g以上的才支持jdk1.5,所以如果采用泛型、enum等特性的java代码只能在11g上用,如果实际生产系统中必须使用10g以下的版本,又不想对代码进行大规模修改的话,可以采用“retrotranslator”这个开源工具对jdk1.5以上的类进行1.4兼容处理。关于这方面的内容,可以参考:http://www.ibm.com/developerworks/cn/java/j-jtp02277.html?s_cmp=techccid&s_tact=105agx52

"retrotranslator"的站点:http://retrotranslator.sourceforge.net/

一般的用法:

java -jar retrotranslator-transformer-1.2.9.jar -srcjar M:/Develop/WordSimilarity/dist/WordSimilarity.jar -destjar M:/Develop/WordSimilarity/dist/WordSimilarity14.jar -embed com.navinfo.transformer

4:被集成为Oracle函数的功能,如分词等,一定要设置为全局static,这样可以防止重复加载,提高处理效率

你可能感兴趣的:(java,jdk,oracle,数据库,delete,工具)