将java的jar包导入oracle,通过oracle调用java方法
来源:互联网 发布:机顶盒点播软件 编辑:程序博客网 时间:2024/06/05 17:56
最近项目上遇到一个问题,因为项目一些数据设计保密的问题,所以数据库的很多数据都是脱敏存储的;但是需求又需要去模糊查询,这就蛋疼了, 由于项目是用base64脱敏的;第一次想到了把条件进行脱敏之后去数据库匹配, 经过测试之后发现,中文脱敏之后去数据库模糊查询是可行的,但是字母和数字脱敏之后就匹配不上了(这可能与加密方式有关,具体没研究过).
后来又想到了又缓存,把所有数据查出来之后,再来项目中处理;但是后来一起研究以后发现,这样有点儿大材小用了
最后一种方式就是本文介绍的方式,由于脱敏的jar已经封装好,所以把这个jar导入进oracle之后,再在oracle 里面写个函数(可以手写代码,也可以在oracle里面选择函数自动生成),通过这个函数来调用java的方法就可以了,为什么oracle可以执行java代码?因为它里面有一个jvm.
具体步骤:
###将jar包导入 oracle
loadjava -r -f -o -u dataBaseName/password@10.20.111.11:1521/name -v -resolve D:work\test.jar (jar包地址)
(dataBaseName:数据库名称 , password:密码, 10.20.111.11:1521/name:数据库连接地址, test.jar:需要导入的jar包)
###查看是否已经导入jar包
select * from user_java_classes;
(注意,在最初导入的时候我们遇到一个问题,一直导入失败,提示找不到类;最后我们发现这个错误是因为,这个脱敏jar包里面有很多类,还关联了其它一些jar包,由于我们只导入了这个jar包,其它相关联的没有导入,所以提示这个错误,后来我们把脱敏的相关类,单独提出来,作成一个新的jar导入进去就ok了)!
###新建function
create or replace function decrpt(ins varchar2) return varchar2 as
LANGUAGE JAVA NAME 'com/test/t/des/utils/DeUtil.decrypt(java.lang.String) return java.lang.String',
(也可以通过菜单选择函数自动生成,此段代码可以和sql语句一样执行)
由于有时候我们会导入出错,所以提供了删除功能
### 删除
dropjava -u dataBaseName/password@10.20.111.11:1521/name -v com/test/t/des/utils/DeUtil
最后执行查询
select decrpt(name) from table
- 将java的jar包导入oracle,通过oracle调用java方法
- 将java的jar包导入oracle,通过oracle调用java方法
- Oracle导入JAR包并调用Java
- 将Java源码导入jar包方法
- 通过oracle,调用java类,并加载jar包到oracle中以支持java类。
- 通过oracle,调用java类,并加载jar包到oracle中以支持java类
- 通过oracle,调用java类,并加载jar包到oracle中以支持java类
- php调用java的jar包方法
- Maven的oracle的jar包导入
- 关于本地导入oracle的jar包
- oracle调用java方法
- 在eclipse导入Java 的jar包的方法
- 在eclipse导入Java 的jar包的方法 JDBC【
- JAVA 使用eclipse导入jar包的两种方法
- 将java源码打成jar包的两种方法
- java连接oracle数据库JDBC使用的jar报包
- JAVA打成JAR包后dll的调用方法
- C#调用java类、jar包方法。
- svn 关键字使用
- loadrunner运行输出乱码解决办法
- TIM_OCMode_PWM2;TIM_OCMode_PWM1
- java获取当月第一天的零点零分和最后一天的23点59分
- eclipse中maven使用
- 将java的jar包导入oracle,通过oracle调用java方法
- 大量数据删除
- iOS UINavigationController 修改默认的动画
- JAVA排序
- 2016年GitHub上史上最全的Android开源项目分类汇总
- Android 禁止屏幕旋转 & 屏幕旋转不刷新 Activity & 动态更改屏幕方向
- Android之Eclipse导入Android源码
- LTE系统调试记录13: LTE物理传输资源(1)-帧结构和OFDM符号
- 正确下载安装与破解Unity5.x 最新版本的详细步骤