自定义函数实现java中的全局唯一标识符(UUID)方法
2009-12-13 16:51
295 查看
数据库中存在着主键约束特性,也就是不能出现相同的主键。如果用一些简单的整数做主键,很有可能会违反主键约束。针对这一应用约束,产生了UUID(Universally Unique Identifier)–来解决这个问题。UUID是全局唯一标识符,指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。
web报表的开发大部分都需要使用数据库,有时就需要用到这个方法来解决一些问题,Java1.5中增加了UUID的方法,本文就将介绍如何把java中的这个方法应用在润乾报表设计中。
Java中的方法函数,在润乾报表中使用,需要通过自定义函数来调用。
实现思路:通过润乾提供的二次开发的接口和类实现将java中的方法调用到报表中。
第一步、编写自定义函数的java类,继承com.runqian.report4.model.expression.Function这个类,具体代码如下。
public class MyUUid extends Function
{
public MyUUid(){ }//空值构造方法
public Object calculate(Context ctx, boolean isInput) //标准接口,ctx为运算环境,isInput为是否填报
{
//得到java中的UUID,格式为类似****-****-****的,可以根据自行设置更改返回值的格式,这里以字符串的形式演示.
String s = UUID.randomUUID().toString();
String value = s.substring(0,8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);//拆分字符串,重新拼成一个新字符串.
return value;
}
}
第二步、将编译好的java类.class文件配置到设计器以及项目中。修改设计器的配置文件,路径为/reportHome/designer/web/WEB-INF/classes/config/customFunctions.properties 文件,加入以下内容:uuid=0,com.runqian.custom.function.MyUUid
其中:uuid是自定义函数的名称,0代表非数据集函数, com.runqian.custom.function.MyUUid是自定义函数的包和类名。
同样方式修改服务器的配置文件,路径为/reportHome/webapps/demo /WEB-INF/classes/config/customFunctions.properties。若/reportHome/webapps/demo /WEB-INF/classes目录下没有config目录,则到/reportHome/designer/web/WEB-INF/classes下复制config目录。
根据上面修改的内容中定义的函数包打好包后,复制到/reportHome/designer/classes和/reportHome/webapps/demo/WEB-INF/classes目录下。
第三步、配置完成后,在报表单元格中直接调用=uuid()即可。
下面设计一张简单的报表模板,直接调用uuid函数,发布到web预览图如下图所示。
此时显示的是当前的UUID的值。
这样就实现在润乾报表中调用java提供的UUID方法了。
引自:润乾报表知识库
原文链接:自定义函数实现java中的全局唯一标识符(UUID)方法
相关文章:自定义制作填报表的提交确认提示框;缓存与实时报表;api导出excel的四种实现方法
其他相关内容: 润乾 ; 商业智能BI联盟 ; 报表软件 ;Java报表商业智能解决方案web报表的扩展功能
web报表的开发大部分都需要使用数据库,有时就需要用到这个方法来解决一些问题,Java1.5中增加了UUID的方法,本文就将介绍如何把java中的这个方法应用在润乾报表设计中。
Java中的方法函数,在润乾报表中使用,需要通过自定义函数来调用。
实现思路:通过润乾提供的二次开发的接口和类实现将java中的方法调用到报表中。
第一步、编写自定义函数的java类,继承com.runqian.report4.model.expression.Function这个类,具体代码如下。
public class MyUUid extends Function
{
public MyUUid(){ }//空值构造方法
public Object calculate(Context ctx, boolean isInput) //标准接口,ctx为运算环境,isInput为是否填报
{
//得到java中的UUID,格式为类似****-****-****的,可以根据自行设置更改返回值的格式,这里以字符串的形式演示.
String s = UUID.randomUUID().toString();
String value = s.substring(0,8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);//拆分字符串,重新拼成一个新字符串.
return value;
}
}
第二步、将编译好的java类.class文件配置到设计器以及项目中。修改设计器的配置文件,路径为/reportHome/designer/web/WEB-INF/classes/config/customFunctions.properties 文件,加入以下内容:uuid=0,com.runqian.custom.function.MyUUid
其中:uuid是自定义函数的名称,0代表非数据集函数, com.runqian.custom.function.MyUUid是自定义函数的包和类名。
同样方式修改服务器的配置文件,路径为/reportHome/webapps/demo /WEB-INF/classes/config/customFunctions.properties。若/reportHome/webapps/demo /WEB-INF/classes目录下没有config目录,则到/reportHome/designer/web/WEB-INF/classes下复制config目录。
根据上面修改的内容中定义的函数包打好包后,复制到/reportHome/designer/classes和/reportHome/webapps/demo/WEB-INF/classes目录下。
第三步、配置完成后,在报表单元格中直接调用=uuid()即可。
下面设计一张简单的报表模板,直接调用uuid函数,发布到web预览图如下图所示。
此时显示的是当前的UUID的值。
这样就实现在润乾报表中调用java提供的UUID方法了。
引自:润乾报表知识库
原文链接:自定义函数实现java中的全局唯一标识符(UUID)方法
相关文章:自定义制作填报表的提交确认提示框;缓存与实时报表;api导出excel的四种实现方法
其他相关内容: 润乾 ; 商业智能BI联盟 ; 报表软件 ;Java报表商业智能解决方案web报表的扩展功能
相关文章推荐
- 方法种子vc 两种方法实现生成全局唯一标识符GUID
- java实现整个工程全局变量的方法
- vc 两种方法实现生成全局唯一标识符GUID
- 基于Java代码实现游戏服务器生成全局唯一ID的方法汇总
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- Java的JDBC数据库连接池实现方法
- 几种任务调度的 Java 实现方法与比较
- Java实现字符串倒序输出的常用方法小结
- Java动态代理的两种实现方法
- java一个方法调用的虚拟机实现
- java反射覆写toString方法实现输出实体类属性值
- 【java学习记录】2.定义一个计算矩形面积、立方体和球体体积的类,该类完成计算的方法用静态方法实现
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- C#调用Java类的实现方法
- HAL/JNI简明笔记(三)——java如何识别native方法的实现
- java代码--请设计一个方法,可以实现任意范围内的随机数
- 倒计时五种方法,方法一:Timer与TimerTask(Java实现)
- java中两个对象间的属性值复制,比较,转为map方法实现
- java实现二叉树的构建以及3种遍历方法
- Java多线程系列三——实现线程同步的方法