`

HSQLDB 带Connection的Stored Procedure

阅读更多
先抱怨几句:
javaeye出问题了,我写了一篇文章,点击提交,它居然告诉我没有权限,难道我自己不能编辑自己的BLOG?
好,即便这样吧,我输入用户名,密码重新进入之后,再提交,居然还是没有权限?
这么回事啊?

郁闷,写好的东西被白白毁掉了,还要重新来,看看是否要花一个小时才能搞好呢……拜托,系统还是要做得稳定一点。
算了吧,做人要低调。

主要是讲hsqldb中的存储过程,hsqldb支持用java方法编写存储过程,只需要将java方法变成类的静态方法。然后将该静态方法定义为可以被调用的存储过程。之后,在sql中就可以调用该存储过程了。说起来,其实蛮简单的。在 org.hsqldb.Library 类中就定义了hsqldb中定义好的,可以被大家所调用的build-in function or stored procedure:)

这里要说的是,对于带Connection的Stored Procedure,其实,也是一样的。只不过,需要将Connection参数定义在方法的第一个参数上。其它的参数,依次排开即可。

比如:
java 代码
 
  1. public static double getTaskWorkLoad(Connection conn,int projectId{  
  2.          ……  
  3. }  
 
定义存储过程还是一样:
sql 代码
 
  1. CREATE ALIAS  getTaskWorkLoad FOR  "com.wzg.script.core.storeprocedure.WorkLoadCompute.getTaskWorkLoad"  

调用的时候,不需要将Connection参数传近来,事实上,你也传不近来呀,。如下所示:
sql 代码
 
  1. select TaskInfo.PROJECT_ID, sum(getTaskWorkLoad(TaskInfo.PROJECT_ID))  
  2.     as planWorkLoad  
  3.     from task_info as TaskInfo  
分享到:
评论
2 楼 XiaoXiaoYang37790315 2012-08-16  
大神,能详细描述一下么?谢了。。。找一天了
1 楼 liuxiang00435057 2011-06-07  
看不明白说什么,现在正在做这个

相关推荐

Global site tag (gtag.js) - Google Analytics