集算器JDBC

集算器JDBC 类似一个不完整的数据库JDBC驱动,它不带物理表,可将集算器视为只有存储过程的数据库(较强的计算能力,较弱的存储机制)。与使用数据库JDBC非常类似,可以像调用存储过程一样调用集算器程序。不同的是,集算器JDBC是个完全嵌入式计算引擎,所有运算都在这个嵌入包中完成,而不象数据库那样还有一个独立的服务器来实施计算。

1、加载驱动jar

集算器JDBC所需jar包括:dm.jar、poi-3.7-20101029.jar、log4j_128.jar、icu4j_3_4_5.jar、dom4j-1.6.1.jar,这5个jar包可以在集算器IDE安装目录的\esProc\
lib下获得。在启动 java 应用程序时加载上述jar包,如果在web应用下,可以把这些 jar包放在 WEB-INF/lib 目录下。

值得注意的是,集算器JDBC需要JDK1.6 或以上版本。

2、修改配置文件config.xml和dfxConfig.xml

    准备config.xml文件,这个文件中包含了集算器的基本配置信息,如注册码、寻址路径、

主目录、数据源配置等,它可以在集算器安装目录的esProc\config路径下找到,在部署时可以先调整其中的配置(详细配置信息解释见附录)。

    配置授权信息

    在config.xml文件里做如下配置:

< regCode>license</regCode>

其中license为授权码,目前集算器提供了免费的分发版供用户集成,免费授权码可在官网上直接获得。

将 config.xml及 dfxConfig.xml保存到应用项目的类路径下。

这里要注意的是,配置文件的名称必须为config.xml和dfxConfig.xml,不能改变。在配置数据库连接信息时,不能循环调用,不能将集算器JDBC本身作为数据源在配置中使用。

3、部署集算器程序

    将事先编辑好的集算器脚本(dfx文件),放到应用项目的类路径下,也可以放到dfxConfig.xml文件的<paths/>节点指定的路径中。

4、Java调用集算器程序

由于集算器程序可以返回单一结果集,也可以返回多个结果集,这里分别来看一下。

4.1、单结果集

    集算器脚本

Java调用

public class CallSingleRS
{

    public
voidtestDataServer(){

        Connection con = null;

        com.esproc.jdbc.InternalCStatement st;

    try{

    //建立连接

          Class.forName("com.esproc.jdbc.InternalDriver");

          con= (Connection) DriverManager.getConnection("jdbc:esproc:local://");

    //调用存储过程,其中singleRs是dfx的文件名

          st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call
singleRs(?)");

    //设置参数

          st.setObject(1,"5");

    //执行存储过程

          st.execute();

    //获取结果集

          ResultSet rs = (ResultSet)st.getResultSet();

    }

    catch(Exception
e){

           System.out.println(e);

        }

    finally{

    //关闭连接

    if (con!=null)
{

    try {

              con.close();

            }

    catch(Exception
e) {

              System.out.println(e);

            }

          }

        }

    }

}

4.2、多结果集

    集算器脚本

Java调用

这里给出主要代码,其他部分与上例相同。

 

//调用存储过程

st =( com.esproc.jdbc.InternalCStatement)con.prepareCall("call MutipleRs()");

//执行存储过程

boolean hasResult = st.execute();

//当存在返回的结果集时

if (hasResult) {

   //获取多个结果集

   ResultSet set = st.getResultSet();

   int csize = set.getMetaData().getColumnCount();

   //返回多个结果集时,返回 1 列多行的数据,csize为 1

   while (set.next()) {

     Object o = set.getObject(1);

     //本例中,每次可读出1个序表,分别取出A2和A3中的序表

    }

}

时间: 2024-10-30 00:32:13

集算器JDBC的相关文章

集算器协助Java处理结构化文本之条件过滤

直接用Java实现文本文件中数据按条件过滤会有如下的麻烦: 1.文件不是数据库,不能用SQL访问.当过滤条件变化时需要改写代码.如果要实现象SQL那样灵活的条件过滤,则需要自己实现动态表达式解析和求值,编程工作量非常大. 2.文件太大时不能一次性装入内存处理,而采用逐步读入方式在考虑到性能时又会涉及到文件缓冲区管理.拆行计算等复杂编程. 使用集算器来辅助Java编程,这些问题都不需要自己写代码解决.下面我们通过例子来看一下具体作法. 文本文件employee.txt中保存了员工数据.我们要读取员

用集算器实现跨数据库关联报表

实际应用中很多报表的数据来源于多个不同类型的数据库,报表数据源跨数据库是报表开发中的常态.目前实现这类跨库关联报表的方式有多种,但都会存在这样那样的问题. 使用报表工具自身多源关联功能 现在大多数主流报表工具都支持多数据源关联,这在某些方面确实为报表用户带来了便利.然而我们也经常会遇到通过报表自身的多源关联功能很难实现一些跨库关联的报表(由于数据结构和业务本身决定).这当然容易理解,报表工具主要是来做数据展现的,而对数据计算本身来说并不擅长. 即使有的能实现,在报表中做跨库关联计算的效率也较低,

集算器访问数据库的配置

集算器支持包括数据库在内的多种异构数据源.这里,我们通过例子来看一下集算器访问数据库的方法. 集算器可以连接数据库的jdbc驱动,也可以通过jdbc-odbc桥连接数据库.由于版权的原因,使用集算器的程序员需要自行准备数据库的jdbc或者odbc驱动.Jdbc驱动jar包准备好之后,需要放入集算器IDE安装目录的/common/jdbc中,例如:C:\Program Files (x86)\MicroInsight\common\jdbc目录中. 集算器集成开发环境的ODBC配置界面如下: 集算

集算器协助java处理结构化文本的集合运算

JAVA不直接支持集合运算,因此要用嵌套循环才能实现文本文件之间的交集.并集.差集 等集合运算,如果文件数量较多,或者文件较大而无法放入内存直接计算,再或者要按照多个字段进行集合运算,则相应的代码会更加复杂.集算器直接支持集合运 算,可以协助JAVA轻松实现此类算法,下面我们通过例子来看一下具体作法. 有两个小文件:f1.txt和f2.txt,第一行是列名,现在需要对文件中的Name字段进行交集运算.部分数据如下: 文件f1.txt: 文件f2.txt: 集算器代码: A1.B1:用import

集算器协助java处理结构化文本之对齐连接

文本文件emp.txt存储着员工信息,EId等于1的员工不在该文件中.文本文件sOrder.txt存储着订单信息,其SellerId字段和emp中的EId字段相对应,SellerId等于2的订单不在该表中.部分源数据如下: emp.txt: sOrder.txt: 现在需要将emp的Name.Dept.Gender这三个字段对齐到sOrder中,计算结果输出到新文件中.期望的计算结果如下: 集算器代码: A1格和A2格分别从文本文件中读取数据,并存入两个变量emp和sOrder.这里使用了函数i

js-计算器如何限制按键数字长度 求代码

问题描述 计算器如何限制按键数字长度 求代码 如题 求 计算器限制按键数字在文本框中的长度 解决方案 按键数字长度是什么意思?你控制文本框的输入内容长度,增加maxlength属性就好了 <input type=""text"" maxlength=""10""/> 解决方案二: onkeydown length<10

学Java-计数器-JDBC版

由于代码问题,决定以后全部截图贴上来,以免由于某些原因造成代码混乱

c-计算器程序:如何在Qt5中使用C编写科学计算器程序?

问题描述 计算器程序:如何在Qt5中使用C编写科学计算器程序? 如何在Qt5中使用C编写科学计算器程序?最好可以直接是不需要GUI,有程序生成界面的C++程序 解决方案 使用C编写科学计算器程序,你有源代码吗?如果有,移植一下应该不难.如果没有,就算了吧,自己写一个类似功能的:或者,网上下载计算器功能的源代码,做移植修改. 如果原来的程序,不提供非 GUI 调用的接口,那么就只能使用它的 GUI. 解决方案二: 在这个csdn论坛里面有好多关于计算器的源代码,你自己看一下

java---计算器图形界面(无功能)

package cn.hncu.chx1; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.Panel; import java.awt.TextArea;