集算器集成与应用之被JAVA调用(1)

标签:
it集算器集成java调用 |
分类: 应用与集成 |
可以将集算器嵌入到Java应用程序中。使用时类似于用JDBC访问数据库的方式调用集算器网格程序。在过程中,网格程序被包装成存储过程,因此调用方法与调用存储过程相同。
1、基本使用
1.1、集算器JDBC的jar包说明
集算器JDBC类似一个不带物理表的数据库JDBC驱动,可以把它简单的看成是一个只有存储过程的数据库。另外,集算器JDBC是个完全嵌入式计算引擎,已经在JDBC中完成了所有运算,不象数据库那样JDBC只是个接口,实际运算在独立的数据库服务器完成。
集算器JDBC包含五个基础jar包,都位于[安装目录]\esProc\ lib目录下:
如果在集算器JDBC需要其它数据库作为集算器中的数据源,那么还需要相应数据库的驱动jar包,特别的,使用demo数据库需要hsqldb.jar。如果在集算器JDBC中需要使用绘制图形功能,还需要SVG类型图象处理相关的3个jar包,包括xml-apis-ext.jar、batik-1.7.jar和batik-ext.jar。需要注意的是,集算器JDBC需要JDK1.6或更高版本。
1.2、集算器JDBC使用的网格文件
与用call函数跨网格调用时类似,在集算器JDBC中使用的网格代码中,结果集需要通过result语句返回。如下面的网格文件createTable1.dfx:
http://s12/mw690/004bRgNGzy6OOcP9Wjx8b&690
这个网格中的计算比较简单:生成一个100条记录的序表,包含顺序设定的ID字段与随机生成的Amount字段。在A3中,用result语句将A1中的序表返回。
下面我们将使用这个网格文件,熟悉在JAVA中调用集算器JDBC的方法。
1.3、用JAVA调用的基本方法
在调用集算器执行网格文件前,首先需要按下面步骤配置相关的信息:
1)
2)
在config.xml中包含了集算器的基本配置信息,如注册码、寻址路径、主目录、数据源配置等,它可以在集算器的[安装目录]\esProc\config路径下找到,其中存储的信息与集算器的选项页面中设定相同。在部署时可以先调整其中的配置。
在dfxConfig.xml中可以配置集算器的并发数等信息,日志文件信息以及连接池信息。它可以在集算器的[安装目录]\esProc\classes路径下找到
注意:配置文件需复制后放置在应用项目的类路径下,但名称必须为dfxConfig.xml和config.xml,不能改变。关于这两个文件的具体解释,可以参考 集算器集成应用之JDBC部署。
3)
将上面的createTable1.dfx放到应用项目的类路径下,也可以放到config.xml文件的节点指定的寻址路径,或者指定的主路径中。
4)
public void testDataServer(){
}
在调用集算器文件时,用"call createTable1()"语句,即可运行网格文件createTable1.dfx并将结果返回为ResultSet对象。在后续的程序中,简单将结果集中的数据输出。程序运行后,输出结果如下:
http://s5/mw690/004bRgNGzy6OOcPERiA44&690
2、调用不同的网格文件
在1.3用JAVA调用的基本方法中,我们了解了如何在JAVA程序中调用一个网格文件。在这里我们详细了解一下如何调用不同的网格文件。先来看下面的网格文件createTable2.dfx:
http://s6/mw690/004bRgNGzy6OOcQc7Z3c5&690
在这个网格文件中,需要从数据源demo中获取数据,同时使用了日期类型的参数Date:
http://s12/mw690/004bRgNGzy6OOcQ8nj5fb&690
在网格中使用的demo数据源,需要在config.xml文件中配置,具体方法可以参考 集算器集成与应用之JDBC部署。在网格中创建的数据源连接,在使用后应该用db.close() 函数关闭。
在JAVA中调用时,建立连接、输出结果等部分的代码是完全相同的,调用文件部分如下:
这个网格文件包含一个参数,因此调用时使用"call createTable2(?)",其中的 ? 代表需要输入的参数。在这种情况下需要用st.setObject() 方法输入参数。输入参数时,将按次序设入参数,而与网格中参数的名称无关。网格文件将根据输入的日期列出生日与之在同一天的员工,需要注意的是在Calendar类中设置日期时,月份是从0开始的。结果集输出如下:
http://s1/mw690/004bRgNGzy6OOcQwiEo50&690
在输入参数时,除了直接按照类型输入参数对象,日期类型的参数也可以输入字符串,由集算器自动解析:
注意输入字符串需要符合config.xml文件中设置的日期格式。程序运行的结果和上面是相同的。
除了上面的调用方法,还可以把参数写定在语句中,如:
使用这样的调用方法时,不能根据参数类型输入对象,而只能使用数值型参数,或使用字符串型参数交由集算器解析。计算后,结果如下:
http://s5/mw690/004bRgNGzy6OOcQoJ6Id4&690
由于没有找到2月29日出生的员工,因此在网格的B5格中用result语句返回了字符串None。从上面的结果中我们可以发现,即使从网格返回的数据是单值,也会自动生成结果集中的列名,作为标准Result返回。