db2使用Java存储过程实现MD5函数
1.数据库版本
2.Java脚本
import java.security.MessageDigest;
import COM.ibm.db2.app.UDF;
public class MD5UDF extends UDF {
public static String MD5(String s) {
String s1 = new String("");
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s1 = new String(str);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return "{" + s1 + "}";
} public static void main(String[] args){
System.out.println(MD5("asdf"));
}
}
3.运行javac编译
javac MD5UDF.java
4.运行jar打包MD5UDF.class 为 MD5UDF.jar
jar cf MD5UDF.jar MD5UDF.class
5.连上数据库,运行安装.jar文件到数据库(C:\Documents and Settings\ALL USERS\Application Data\IBM\DB2\DB2COPY1\function\jar\ZEN 目录下)
db2 connect to sample
db2 "CALL sqlj.install_jar('file:E:\MD5UDF.jar', 'MD5UDF')"
6.登录数据库创建function
DROP FUNCTION BI_MD5; CREATE FUNCTION BI_MD5(VARCHAR(200))
RETURNS VARCHAR(70)
EXTERNAL NAME 'MD5UDF:MD5UDF.MD5'
FENCED VARIANT
NO SQL
EXTERNAL ACTION
LANGUAGE JAVA
PARAMETER STYLE JAVA
7.调用测试
select bi_MD5('12345') from sysibm.dual
OK!
结论:
1.安装、删除、替换jar文件
db2 "CALL sqlj.install_jar('file:D:\someBookes\Java\MD5UDF2.jar', 'BIMD5')"
db2 "CALL sqlj.remove_jar('BIMD5')"
db2 "CALL sqlj.replace_jar('file:E:\mydb2\mylog.jar', 'BIMD5')"
2.刷新已经调用的jar或class,不用重启实例就生效:
db2 "CALL SQLJ.REFRESH_CLASSES()"
3.调用的Java方式必须是静态的。
4.编译成jar包的SDK版本必须和db2的版本相符
否则会报错



db2使用Java存储过程实现MD5函数的更多相关文章
- java生成字符串md5函数类
import java.security.MessageDigest; /** * Md5 工具 */ public class Md5Util { private static MessageDig ...
- java生成字符串md5函数类(javaSE)
//实现生成MD5值 import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.B ...
- Atiitt 使用java语言编写sql函数或存储过程
Atiitt 使用java语言编写sql函数或存储过程 1.1. java编写sql函数或存储过程的机制1 1.2. Java编写sp的优点1 1.3. 支持java源码,class文件,blog f ...
- Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...
- 存储过程 <3> 和函数的区别
二.函数和存储过程的优点: 1.共同使用的代码可以只需要被编写一次,而被需要该代码的任何应用程序调用(.net,c++,java,也可以使DLL库). 2.这种几种编写.几种维护更新.大家共享的方法, ...
- Java 自带MD5加密 Demo
package demo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pub ...
- mysql存储过程及常用函数
原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取 ...
- Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器
初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在 笔记 在pl/sql中可以继续使用的sql关键字有:update del ...
- Oracle存储过程和自定义函数
新博客文章链接,欢迎大家评论探讨 概述 存储过程和存储函数是指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 异同点: 存储过程和存储函数的相同点:完成特定功能的程序. 存储过程和存储 ...
随机推荐
- maven管理多模块系统
1.创建mydemo项目cd d:\myworkmvn archetype:create -DgroupId=com.example.mydemo -DartifactId=mydemo 生成myde ...
- linux下获取ip
如果打开虚拟机 没有ip置灰显示了 lo 可以使用dhclient自动获取ip 如果想开机就自动获取ip: vim /etc/rc.d/rc.local 在这里插入dhclient命令
- template和templateUrl区别与联系
templateUrl其实根template功能是一样的,只不过templateUrl加载一个html文件,template后面根的是html的标签. .state('menu.about', { u ...
- IC卡写卡操作流程
var icData = new ICData(); var deviceResult = crd.CRDICPowerOn(); if (!deviceResult.IsSuccess) retur ...
- Flex性能优化常用手法总结 转
转自:http://bbs.51aspx.com/showtopic-43693.html 随着Flex越来越多的被人们所熟知,越来越多的互联网也开始了RIA应用.众所周知,目前国内的宽带应用并不是像 ...
- XShell提示Connection closed by foreign host的问题 和 路由器分配IP的规则
情况是这样的: VMware中有三个Linux机器分别是crxy99(192.168.1.99),crxy100(192.168.1.100),crxy101(192.168.1.101),crxy1 ...
- poj 2983 差分约束
思路: 设dis[i]为标号为i的点到0号点的距离.对于P A B X,我们能得到等式dis[a]-dis[b]=x,那么可以化为两个不等式dis[a]-dis[b]>=x和dis[b]-dis ...
- Git - Download for Linux and Unix
It is easiest to install Git on Linux using the preferred package manager of your Linux distribution ...
- asp.net上传文件时出现 404 - 找不到文件或目录。
昨天客户网站反应上传较大文件时出现404-找不到文件或目录的错误.如图: 网站上给出的提示是上传文件不能超过50M,但是在38M和40M这样的文件都不能上传了,显然不对. 在网上查了很久,第一个是检查 ...
- AndroidStudio KeyMap