热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

db2使用Java存储过程实现MD5函数

1.数据库版本2.Java脚本importjava.security.MessageDigest;importCOM.ibm.db2.app.UDF;publicclassMD5U

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 ) {                
                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的版本相符

否则会报错

技术分享

 参考文章:
技术分享http://bbs.chinaunix.net/thread-966098-1-1.html
技术分享http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1012liucs/
技术分享http://www.ibm.com/developerworks/data/library/techarticle/dm-0510law/index.html

db2使用Java存储过程实现MD5函数


推荐阅读
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
潜水的飞机537
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有