在Oracle数据库环境中,引入jar包并编译Java类是实现数据库级功能的关键步骤。本文将详细介绍如何通过命令行操作完成这个过程,以及如何利用这些编译后的Java类进行加密操作。 首先,我们需要了解Oracle数据库中的Java加载机制。在Oracle数据库中,可以通过`loadjava`命令来加载预编译的Java类库(jar文件)。例如,文件中提到的命令: ``` C:\Users\Administrator>loadjava-r-f-o-useryjoa20170810/hyjkoracle@orcl/odata/dmp/MD5AES128.jar C:\Users\Administrator>loadjava-r-f-o-useryjoa/hyjkoracle@orcl/odata/dmp/DESEDE32.jar ... ``` 这里的`loadjava`命令用于加载指定路径下的jar文件,`r-f-o`可能是加载选项的一部分,`user`和`password`代表数据库连接信息,`@orcl`表示目标数据库实例名为"orcl",`/mnt/`后面跟着的则是jar文件的具体路径。 接下来,我们创建和编译Java源代码。源代码包含两个类:`EncryUtils`和`Hello`。`EncryUtils`类提供了`encryptPass`方法,使用`com.hljhyhc.security.MD5AES128`库对输入的字符串进行加密。MD5AES128.jar和DESEDE32.jar可能包含了该库的实现,确保它们已被正确加载。 ```java public class EncryUtils { static public String encryptPass(String str) { return com.hljhyhc.security.MD5AES128.encryptString(str); } } ``` 在Oracle数据库中,我们可以使用`createorreplaceandcompilejavasource`命令来创建、替换或更新源代码,并将其编译为可以在数据库中执行的Java函数。这样,`encryptPass`函数就可以在数据库层面被调用了: ```sql createorreplaceandcompilejavasource named encryutils as public class EncryUtils { // ... } createorreplace function encryutils (ins varchar2) return varchar2 as language java name 'EncryUtils.encryptPass(java.lang.String) return java.lang.String'; ``` 另一个示例是`Hello`类,它有一个静态方法`Message`,同样调用了加密库进行操作: ```java public class Hello { static public String message(String yname) { return com.hljhyhc.security.MD5AES128 // 类似于上面的调用 } } ``` 为了在数据库中实际使用这些功能,你可以像这样执行SQL查询: ```sql select encryutils('123456') from dual select encryptStr('123456') from dual ``` 通过这种方式,开发者可以将加密等业务逻辑封装到Java类中,然后在Oracle数据库中调用,实现了数据库级别对数据安全性的增强。在实际应用中,确保正确处理jar文件的依赖关系,管理好数据库连接,以及遵循良好的编程实践是非常重要的。
http://blog.sina.com.cn/s/blog_4ca246370101b309.html
C:\Users\Administrator>loadjava -r -f -o -user yjoa20170810/hyjkoracle@orcl /odata/dmp/MD5AES128.jar
loadjava -r -f -o -user yjoa/hyjkoracle@orcl /odata/dmp/DESEDE32.jar
loadjava -r -f -o -user yjoa20170810/hyjkoracle@orcl /odata/dmp/DESEDE32.jar
loadjava -r -f -o -user im_user/im_password147@orcl /mnt/DESEDE32.jar
loadjava -r -f -o -user im_user/im_password147@orcl /mnt/MD5AES128.jar
create or replace and compile java source named encryutils as
public class EncryUtils
{
static public String encryptPass(String str)
{
return com.hljhyhc.security.MD5AES128.encryptString(str);
}
}
create or replace function encryutils(ins varchar2) return varchar2
as language java name
'EncryUtils.encryptPass(java.lang.string) return java.lang.String ' ;
select encryutils('123456') from dual
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 8
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展